当我在我的表中插入一行时,如果未指定 id,我希望 id 的行为类似于 AUTO_INCREMENT。我试了一下,想用扳机来做,但我做不到。它总是尝试将 id 设置为 0。这是我的尝试:
CREATE TRIGGER inc_id BEFORE INSERT ON project
FOR EACH ROW BEGIN
DECLARE new_id integer;
IF NEW.id is null THEN
SELECT MAX(a.id)+1 INTO new_id FROM (SELECT id FROM project UNION SELECT 0 id) a;
SET NEW.id = new_id;
END IF;
END
然后我尝试插入一行:
INSERT INTO project(projekt) VALUES("test")
我也尝试过:
SELECT COALESCE(MAX(id),0)+1 INTO new_id FROM project
这是一个更简单的选择,但问题仍然存在。
最佳答案
我通过使用 AUTO_INCREMENT 解决了这个问题。显然它作为默认值工作。
关于mysql - 创建一个触发器,如果没有指定,它会增加一个 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31264807/