0
我想在每次有INSERT事件时主键都是自动生成的UUID。但问题是,当我试图执行一个INSERT查询跳过主键列是这样的:主键UUID触发器
INSERT INTO `tablename` (`reference`) VALUES ('hey');
没有行插入并没有错误。只是“0行插入...” 这是我的表和触发器。谢谢。
CREATE TABLE `tablename` (
`uuid` char(36) NULL,
`reference` varchar(100) NOT NULL,
PRIMARY KEY (uuid)
);
DELIMITER ;;
CREATE TRIGGER before_insert_tablename
BEFORE INSERT ON tablename
FOR EACH ROW
BEGIN
IF new.uuid IS NULL THEN
SET new.uuid = uuid();
END IF;
END
;;
DELIMITER ;
我无法相信我错过了这一个。但是当我将它设置为“NOT NULL”时,它没有改变任何东西。然后我认为我的触发条件检查'如果new.uuid IS NULL THEN'。我将它改为检查它是否为空或空字符串的东西。 '如果new.uuid是空值或new.uuid =''THEN',它的工作原理!谢谢你让我意识到。 – legitghost
不客气;)@Ghost – wajeeh