У меня есть таблица с полем ID автоинкремента, как показано ниже.
+------------+-------------------------------------+ | company_id | name | +------------+-------------------------------------+ | 1 | International Client | | 2 | Oracle | | 3 | test | | 4 | testabc | | 5 | testdef | | 6 | abcd | +------------+-------------------------------------+
Я хочу обновить столбец идентификатора в GUID с помощью функции
uuid()
Кроме того, как мне обновить ссылки на внешние ключи на правильный GUID?
Используйте триггеры.
CREATE TABLE `tbl_test` ( `GUID` char(40) NOT NULL, `Name` varchar(50) NOT NULL, PRIMARY KEY (`GUID`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Таблица и ПК, теперь триггер ..
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...');
С уважением, / Т
Вы не можете использовать его с автоинкрементом
guid - это символ, а не целое число
Вы должны вставить его самостоятельно
также вам нужно изменить идентификатор на char (40)
insert into table_name (id,name) values (uuid(),'jon');