繁体   English   中英

从一张桌子移动到另一张桌子

[英]Move from one table to another

我需要将一些数据从表移动到存档表。

现在我这样做:

$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 表中删除。 如果插入失败,我不想删除。

如果使用唯一键,请从产品中删除与历史表中具有相同键的所有记录。

我希望您有一个名为 id (ProduktID) 的字段,那么两个表中哪些产品必须具有相同的 id,以下应该可以工作。

从 products.id IN 的产品中删除(从 history_products 中选择 history_products.id)

DELETE FROM products WHERE category_id IN (SELECT category_id FROM history_products)

这只会删除 products 表中相应记录存在于 history_products 中的记录。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM