从一个表移动到另一个表

时间:2011-07-20 19:49:19

标签: php mysql database move

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

现在我这样做:

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

3 个答案:

答案 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)

这只会删除产品表中历史记录中存在相应记录的记录。