我有一个带有自动增量ID字段的表,如下所示。
+------------+-------------------------------------+ | company_id | name | +------------+-------------------------------------+ | 1 | International Client | | 2 | Oracle | | 3 | test | | 4 | testabc | | 5 | testdef | | 6 | abcd | +------------+-------------------------------------+
我想使用
uuid()函数将ID列更新为GUID。
此外,如何更新对正确GUID的外键引用?
答案 0 :(得分:7)
使用触发器。
CREATE TABLE `tbl_test` (
`GUID` char(40) NOT NULL,
`Name` varchar(50) NOT NULL,
PRIMARY KEY (`GUID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
table和pk,现在触发..
DELIMITER //
CREATE TRIGGER `t_GUID` BEFORE INSERT ON `tbl_test`
FOR EACH ROW begin
SET new.GUID = uuid();
end//
DELIMITER ;
现在试试,
insert into tbl_test(Name) value('trigger happy...');
的问候, /吨
答案 1 :(得分:3)
你不能将它与自动增量一起使用
guid是char not intger
你需要自己插入
您还需要将id更改为char(40)
insert into table_name (id,name) values (uuid(),'jon');
答案 2 :(得分:0)
在 mysql 8.0 中,您可以使用以下内容:
对于没有破折号的 UUID:
create table temp (`company_id` VARCHAR(64) NOT NULL DEFAULT (REPLACE(UUID(),'-','')), 'name' varchar(100) NOT NULL);
对于带破折号的 UUID:
create table temp (`company_id` VARCHAR(64) NOT NULL DEFAULT (UUID()), 'name' varchar(100) NOT NULL);
我希望这能回答您的问题,如果不是,请告诉我,或者您需要更多。