Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 当未显式指定新值时,让字段获取另一个字段的值_Php_Mysql - Fatal编程技术网

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。