给出表
CREATE TABLE testtab(
col int
)
我需要检查插入的值,如果值满足条件,则忽略这些行。所以,触发器看起来像这样:
DELIMITER $$
CREATE TRIGGER check_rows BEFORE INSERT ON testtab
FOR EACH ROW
BEGIN
IF new.col > 7 THEN
-- here need ignore that row and do not insert
END IF;
END; $$
我可以使用signal sqlstate '45000'
但问题是当我使用多种插入语法时:
insert into testtab
values
(55),
(4)
触发器忽略所有行,但我需要忽略“55”,并插入“4”。
那么,当使用多个/批量插入时,如何忽略某些行而不是全部?
答案 0 :(得分:0)
如果您使用的是PHP,那么在将批量数据插入MySQL之前,请先清理数据。否则,使用触发器只允许您插入全部或全部。