MySQL - автоинкремент к гиду - PullRequest
5 голосов
/ 08 марта 2011

У меня есть таблица с полем ID автоинкремента, как показано ниже.

+------------+-------------------------------------+
| company_id | name                                |
+------------+-------------------------------------+
|          1 | International Client                |
|          2 | Oracle                              |
|          3 | test                                |
|          4 | testabc                             |
|          5 | testdef                             |
|          6 | abcd                                |
+------------+-------------------------------------+

Я хочу обновить столбец идентификатора в GUID с помощью функции

uuid()
.

Кроме того, как мне обновить ссылки на внешние ключи на правильный GUID?

Ответы [ 2 ]

7 голосов
/ 08 марта 2011

Используйте триггеры.

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

С уважением, / Т

3 голосов
/ 08 марта 2011

Вы не можете использовать его с автоинкрементом

guid - это символ, а не целое число

Вы должны вставить его самостоятельно

также вам нужно изменить идентификатор на char (40)

insert into table_name (id,name) values (uuid(),'jon');
...