我需要将一些数据从表移动到存档表。
现在我这样做:
$sql = 'INSERT INTO history_products
SELECT * FROM products WHERE category_id='.$id;
然后我从产品表中删除数据。
$sql_delete = 'DELETE FROM products WHERE category_id = '.$id;
每个产品都有唯一的ID。 但我希望以安全的方式进行此操作,现在即使在history_products中未插入行,该行也将从products表中删除。如果插入失败,我不想删除。
答案 0 :(得分:1)
如果使用唯一键,请删除与历史记录表中密钥相同的产品中的所有记录。
答案 1 :(得分:1)
我希望你有一个名为id(ProduktID)的字段,两个表中的产品必须具有相同的id,以下内容应该有效。
从products.id IN(从history_products中选择history_products.id)
的产品中删除答案 2 :(得分:1)
DELETE FROM products WHERE category_id IN (SELECT category_id FROM history_products)
这只会删除产品表中历史记录中存在相应记录的记录。