mysql创建数据库时怎么将主键设置为UUID,建表语句怎么写

如题... 如题 展开
 我来答
趣职场
2020-01-14 · TA获得超过1894个赞
知道小有建树答主
回答量:305
采纳率:100%
帮助的人:23.4万
展开全部

mysql设置UUID为主键需要先将数据类型设置为VARCHAR(36),然后插入数据的时候用UUID函数插入UUID。下面我用win10系统下的CMD命令行具体演示一下:

1、打开CMD,输入mysql -uroot -p命令连接mysql,如下图所示

2、通过create创建表,指定ID为varchar(36),并设置为主键,如下图所示

3、在插入数据的时候,调用uuid()函数往主键字段里插入uuid值,如下图所示

4、最后查询插入的数据就可以看到id主键列存放的是uuid类型了,如下图所示

Drank倾城99
2020-04-14
知道答主
回答量:8
采纳率:0%
帮助的人:5593
展开全部

你们的想法是不是,想在建表时为id指定uuid,然后每次插入数据都会自动为每一条数据生成uuid呢?就像auto_increment主键自增一样呢?

我只想说 you are too young!

我一开始是这样做的:

create table product(

id varchar(36) primary key default uuid()

sql语句报错。

后来查了查资料,发现mysql好像并不支持在建表时,为某一字段指定默认函数值。但是在Oracle数据库中,却支持这样干,也就可以实现插入数据时,自动生成uuid。

所以在mysql中只能在插入数据时,将uuid()函数值赋值给id字段。

后来,我又想了一个方案,我可以去写一个触发器,每次在执行插入操作时,都为id字段更新为uuid(),但是这种方式还是存在很多问题的,这里就不说了。

最后说明一点(uuid适不适合作为主键):

uuid号称“全球唯一”,实际上业务中一般不会只用一个uuid就保证某个字段的唯一性,因为它并不能保证唯一性,uuid的组成:

Mac地址+时间戳+自增序列,前两个都可以修改,自增序列在不同机器本身就无法保证唯一。既然无法保证唯一,那么没有任何处理的情况下直接将uuid作为主键,显然也是不合适的。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
折柳成萌
高粉答主

2017-11-11 · 繁杂信息太多,你要学会辨别
知道顶级答主
回答量:4.4万
采纳率:96%
帮助的人:5988万
展开全部
那直接用语句创建就好了,唯一约束可以理解为是主键
create table test
(id int primary key,
name varchar(10),
age int)

说明:其中primary key就是主键,也就代表此表中id字段是唯一的,不可重复。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式