一尘不染

MySQL中的主键:INT(n)或UUID为varchar(36)

mysql

在MySQL中使用UUID作为主键有意义吗?

除了手动查询的麻烦之外,使用UUID代替常规INT的利弊是什么?


阅读 658

收藏
2020-05-17

共1个答案

一尘不染

UUID的主要缺点是,如果您想在以后引用该记录以供进一步使用,则必须事先创建它们(即:在相关的外键表中添加子记录):

INSERT INTO table (uuidfield, someotherfield) VALUES (uuid(), 'test'));

不会让您看到新的UUID值是什么,并且由于您没有使用常规的auto_incremented主键,因此无法使用last_insert_id()它来检索它。您必须分两步进行:

SELECT @newuid := uuid();
INSERT INTO table (uuidfield, someotherfield) VALUES (@newuid, 'test');
INSERT INTO childtable ..... VALUES (@newuid, ....);
2020-05-17