运行以上代码得到结果:4b1ea801bea911e7913c1418775159ef
直接使用UUID()函数得到的结果是8e9503d9-beab-11e7-913c-1418775159ef,因为含有“-”与原有的ID不一致,我们就可以使用REPLACE函数去除“-”,保持格式一致。
UUID 是 通用唯一识别码(Universally Unique Identifier)的缩写,标准的UUID格式为:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (8-4-4-4-12),包含32个16进制数字,以连字号分为五段。示例:
550e8400-e29b-41d4-a716-446655440000。
写了一个根据当天日期
生成
序列号
主键
的一个procedure,规则为:当天的日期加上序列号,如20120604002,表明是2012年06月04号的第2单。
具体的时间方式是通过表的策略来
生成
的。
生成
一张管理表(用于多种
主键
生成
)
create table sysOption (
keyName varchar(255),
value varchar(255),
time t...
在现实的开发中,我们很少用到让
MySQL
自己
生成
uuid
,因为在高并发场景下,这是不被允许的。通常是在代码中
生成
id,或者是
使用
专业的id服务器(Twitter-Snowflake)。我们要讨论的内容是,当我们在手动输入元数据的时候,如果恰巧有一列
uuid
,我们不想手动输入,而是希望
MySQL
为我们自动创建,那么我们可以
使用
触发器。
DELIMITER ;;
CREATE TRIGGER `foo_before_insert`
BEFORE INSERT ON `foo` FOR EACH ROW
如果你是在校生,你应该趁着在学校的时间夯实基础(比如计算机系统、算法、编译原理等等)不要动不动去搞什么项目,你也搞不出一个让面试官很满意的项目出来,所以根本没必要在项目上面浪费太多的时间。
如果你觉得自学没有方向,你也可以去腾讯课堂上报一个培训班,价格也不贵,去系统的学习一下,当然,腾讯课堂上的严选课程优先考虑!(都2021年了,不会还有人极度排斥培训这种方式吧,不是吧…)
对于在校生最好的建议就是夯实基础,说太多其他的都有点扯淡。如果基础底子不好,在遇到一些问题,你根本想不出来这是为什么会出现这个
一、
使用
SQLyog创建简单的触发器
1、参考博客:
MySQL
中如何将
主键
默认值设为
UUID
()
创建触发器代码,product表中的id为
主键
,id 默认值为唯一且不同字符串,需要
使用
UUID
()
函数
,但是
mysql
中不支持默认值为
函数
,故此需要触发器
DELIMITER $$
CREATE
/*[DEFINER =
-- 参数:动态查询表和
主键
列
create or replace function charkey (tabName char, pkName char) return char
v_key varchar2(4); -- 表中查询出当前
主键
列最大值
v_char varchar2(4) :=
DELIMITER CREATETRIGGER‘idtrigger‘BEFOREINSERTON‘product‘FOREACHROWBEGINSETnew.id=REPLACE(
UUID
()
,′−′,′′);END
CREATE
TRIGGER `id_trigger`
BEFORE INSERT
ON `product`
FOR EACH ROW BEGIN
SET new.id=REPLACE(
UUID
()
,'-','');
ENDCREATETRIGGER‘idtrigger‘BEF
今天在改别人的一个代码中发现一个问题,要创建一个
uuid
类型的
主键
CREATE TABLE `product` (
`id` VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
`productNum` VARCHAR(50) NOT NULL,
`productName` VARCHAR(50) DEFAULT NULL,
`cityName` VARCHAR(50) DEFAULT NU
MySQL
生成
UUID
主键
的方法是
使用
UUID
()
函数
。这个
函数
会
生成
一个全局唯一的标识符,可以用作表的
主键
。通过在创建表时指定
主键
类型为CHAR(36),并将默认值设置为
UUID
()
,可以实现自动
生成
UUID
主键
。例如,可以
使用
以下语句创建一个具有
UUID
主键
的表:
CREATE TABLE t_
uuid
(
id CHAR(36) PRIMARY KEY DEFAULT
UUID
()
,
r1 INT,
KEY idx_r1(r1)
这样,每次插入新记录时,
MySQL
会自动为id列
生成
一个唯一的
UUID
值。\[1\]
#### 引用[.reference_title]
- *1* *2* [第17期:索引设计(
主键
设计)](https://blog.csdn.net/ActionTech/article/details/110470533)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [
MySQL
UUID
主键
-由PHP或
MySQL
生成
?](https://blog.csdn.net/weixin_28836507/article/details/118808024)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
SQL相关子查询与非相关子查询
KBDDEY:
登录页面如何去掉浏览器默认记住密码
weixin_41950674:
远程桌面无法使用剪切板的解决方法
jhrcc: