我有一个格式如下的表:
id | ....... | other_id
-------------------------
1 | ....... | 5
2 | ....... | 2
基本上,当提交表单时,有时表单中会有一个other_id
的值,新行的插入也会正常进行。但是,如果没有为other_id
给定值,我希望它的值来自id
。问题是id
是自动递增的id,因此id
的实际值在实际插入表之前是未知的。
有没有一种方法可以用SQL本身动态地做到这一点,而不必在之后运行额外的查询?
您可以使用插入触发器:
CREATE TRIGGER foo AFTER INSERT ON TABLENAME FOR EACH ROW
IF NEW.other_id IS NULL THEN
SET NEW.other_id := NEW.id;
END IF;;
@jh314几乎是对的。只需将AFTER INSERT更改为BEFORE INSERT