【发布时间】:2021-05-07 20:40:29
【问题描述】:
我有一个触发器BEFORE INSERT,其中包含:
set new.order_id = concat(new.account_id, '.', lpad(new.id, 4, '0'))
现在,当我尝试使用 php 插入一些数据时:
$insertorder = '
INSERT INTO orders
(
producten
)
VALUES
(
"'.$conn->real_escape_string($encodedproductenarray).'"
)';
我收到以下错误:There was an error running the query [Column 'order_id' cannot be null]
所以我尝试像这样在order_id 列中插入一些数据:
$insertorder = '
INSERT INTO orders
(
order_id,
producten
)
VALUES
(
"1"
"'.$conn->real_escape_string($encodedproductenarray).'"
)';
$insertordercon = $conn->query($insertorder);
但这给出了同样的错误。为什么?我需要更改触发器中的某些内容吗?
触发器将account_id 和id(自动增量)与中间的一个点合并在一起,并将其设置为order_id。
当我使用 phpmyadmin 插入空数据时,插入工作并且触发器也完成了它的工作(除了值是 0.0000,因为一切都是空的)但是由于某种原因,当使用下面的插入查询时我得到了错误。
【问题讨论】:
-
注意在执行触发器之前验证列。
标签: mysql sql database triggers