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

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

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

回答:

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, ....);

以上是 MySQL中的主键:INT(n)或UUID为varchar(36) 的全部内容, 来源链接: utcz.com/qa/423433.html

回到顶部