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

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

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类型了,如下图所示

MYSQL

中表1需要准备大量数据,内容主要取自表2,id必须为32位uuid

(项目所有表都是这样,没办法),

准备这样插入:

1

INSERT

INTO

TBL_ONE

(ID,

SOID,

SNAME)

SELECT

2

REPLACE

(UUID(),

'-',

''),

3

TWO.ID,

4

TWO.NAME

5

FROM

6

TBL_TWO

TWO

报错:

Duplicate

entry

'4534c15dc2a111e6a9ab000ec6c596eb'

for

key

'PRIMARY',显然主键冲突了,

REPLACE

(UUID(),

'-',

'')

仅执行了一次,

找了半天,似乎也没有最简单的解决方案。退而求其次,我想到的最简单解决方案:

1

INSERT

INTO

TBL_ONE

(ID,

SOID,

SNAME)

SELECT

2

UUID(),

#UUID()为什么可以?

3

TWO.ID,

4

TWO.

NAME

5

FROM

6

TBL_TWO

TWO7

8

UPDATE

TBL_ONE

SET

ID

=

REPLACE

(ID,

'-',

'')

uuid()生成的id不会重复,但是会有"-",用空格替换一下就ok了。

在mysql中可以把UUID作为逻辑主键,物理主键依然使用自增ID

1、UUID定义

UUID含义是通用唯一识别码

(Universally

Unique

Identifier),这

是一个软件建构的标准,也是被开源软件基金会

(Open

Software

Foundation,

OSF)

的组织应用在分布式计算...


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8682482.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-19
下一篇 2023-04-19

发表评论

登录后才能评论

评论列表(0条)

保存