Php 当未显式指定新值时,让字段获取另一个字段的值
我有一个这样格式的表格:Php 当未显式指定新值时,让字段获取另一个字段的值,php,mysql,Php,Mysql,我有一个这样格式的表格: id | ....... | other_id ------------------------- 1 | ....... | 5 2 | ....... | 2 基本上,在提交表单时,表单中有时会有一个other_id值,并且新行的插入正常进行。但是,如果没有为other\u id指定值,我希望它的值来自id。问题在于id是自动递增的id,因此id的实际值在实际插入到表中之前是未知的 有没有一种方法可以通过SQL本身动态执行此操作,而
id | ....... | other_id
-------------------------
1 | ....... | 5
2 | ....... | 2
基本上,在提交表单时,表单中有时会有一个other_id
值,并且新行的插入正常进行。但是,如果没有为other\u 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几乎是正确的。只需将“插入后”更改为“插入前”谢谢-在修改为正确的字段名称后,我在尝试创建触发器时遇到以下错误:
\1362-在“插入后”触发器中不允许更新新行
我是否应该使用新建
?快速回答否,棘手的答案检查这个@YourCommonSense我以为我有语法问题,但我想没有!如果我取消删除,则id在插入之前没有值。如果我将其更改为插入之前的值,则其值为0。