0
したがって、新しいエントリが挿入されたときにトリガーで満たされるテーブルにこの1つの列があります。MySQL:データベースに挿入する際の整合性エラー
CREATE TABLE `users` (
`idusers` int(11) NOT NULL AUTO_INCREMENT,
`uid` char(64) DEFAULT NULL,
`uname` varchar(80) NOT NULL,
`password` char(128) NOT NULL,
`mail` varchar(120) NOT NULL,
PRIMARY KEY (`idusers`),
UNIQUE KEY `uname_UNIQUE` (`uname`),
UNIQUE KEY `mail_UNIQUE` (`mail`),
UNIQUE KEY `uid_UNIQUE` (`uid`)
);
DELIMITER $$
TRIGGER `flask`.`users_BEFORE_INSERT` BEFORE INSERT ON `users` FOR EACH ROW
BEGIN
set new.uid = sha2(new.idusers, 256);
END$$
DELIMITER ;
問題は、今私は(唯一のエラーのため、まだテスト1を持っている)新しい行を追加しようとすると、トリガーにnew.idusers
の値は常に何らかの形で0
の代わりに、現在のAUTO_INCREMENT値であるということです。
uidの生成に使用される値が実際のIDであり、必ずしも0
ではないように、トリガーコードを変更するにはどうすればよいですか?
可能な重複: http://stackoverflow.com/questions/5991464/before-after-insert-trigger-usingを-auto-increment-field?rq = 1 –