我正在使用mysql数据库,如果产品代码已存在于tableA中,我正在尝试将记录插入tableB。
我认为CASE声明可行,但我无法在网上找到任何进一步的帮助。 以下是我到目前为止的情况:
CASE (SELECT COUNT(*) FROM tableA WHERE tableA.item_code = '$pcode') > 1
THEN INSERT INTO tableB(item_id, serial_number, used)
VALUES ('$iid','$sns','$used') END
任何帮助非常感谢。 干杯
答案 0 :(得分:6)
您只需要编写一个常规的旧插入语句:
insert into tableB(item_id, serial_number, used)
select '$iid', '$sns', '$used'
where exists (select 1 from tableA where item_code = '$pcode')
答案 1 :(得分:1)
insert into tableB(item_id, serial_number, used)
select item_id, '$sns', 1
from tableA where item_code = '$pcode'
答案 2 :(得分:1)
下面:
INSERT INTO tableB
(productcode)
SELECT productcode
FROM tableC c
WHERE EXISTS (SELECT productcode
FROM tableA a
WHERE a.productcode = c.productcode)
答案 3 :(得分:0)
或者如果你在item_codes上放了一个外键,你可以用通常的方式插入记录
INSERT INTO tableB(item_id, serial_number, used) VALUES ('$iid','$sns','$used')
并在发生异常时捕获异常......
请参阅:Handling foreign key exceptions in PHP
这种方法的好处是数据库会自动为您执行规则。