我正在重新审视我的数据库,并注意到一些主键的类型是INT。
这不够唯一,所以我想使用GUID。我来自Microsoft SQL背景,在SSMS中您可以选择类型为“uniqeidentifier”并自动递增它。
然而,在MySQL中,我发现您必须为您想要生成GUID ID的表创建在插入时执行的触发器。例如:
表:
CREATE TABLE `tbl_test` (
`GUID` char(40) NOT NULL,
`Name` varchar(50) NOT NULL,
PRIMARY KEY (`GUID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
触发器:
CREATE TRIGGER `t_GUID` BEFORE INSERT ON `tbl_test`
FOR EACH ROW begin
SET new.GUID = uuid();
或者你需要在后端自己插入guid。
我不是数据库专家,但仍然记得触发器会导致性能问题。
上述内容来自这里,已有9年历史了,所以我希望有些东西已经改变了吗?
INSERT INTO
查询中插入uuid()
函数的值。 - Progman