0

我有一个这种格式的表格:

 id | ....... | other_id
-------------------------
  1 | ....... |    5     
  2 | ....... |    2

基本上,当表单提交时,有时表单中会有一个值,other_id新行的插入是正常的。但是,如果没有给出 的值other_id,我希望它的值来自id。问题在于自动递增的 id,因此在实际插入表之前,它的id实际值是未知的。id

有没有办法用 SQL 本身动态地做到这一点,而不必在之后运行额外的查询?

4

2 回答 2

1

您可以使用插入触发器:

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;;
于 2013-07-09T14:54:58.110 回答
0

@jh314 几乎是对的。只需将 AFTER INSERT 更改为 BEFORE INSERT

于 2013-07-09T15:09:57.290 回答