テーブルからアーカイブテーブルにデータを移動する必要があります。テーブル間を移動する
今、私はそれをこのように実行します。
$sql = 'INSERT INTO history_products
SELECT * FROM products WHERE category_id='.$id;
そして私は、製品テーブルからデータを削除します。
$sql_delete = 'DELETE FROM products WHERE category_id = '.$id;
各製品には固有のIDがあります。 しかし、これを安全な方法で行いたいのですが、行がhistory_productsに挿入されていなくても、行は商品テーブルから削除されます。挿入が失敗した場合は削除したくありません。
私が考えるこの方法:CATEGORY_ID = $ CATEGORY_ID Productsから削除し、(history_productsからhistory_products.id SELECT)ではproducts.id – morandi3
は(history_productsからhistory_products.id SELECT products.category_id = $ CATEGORY_ID製品からのDELETEおよびIn products.id and history_products.category_id = $ category_id)これにより、INのカウントが小さくなり、おそらく実行全体が少し遅くなります – Dukeatcoding
または、この方法は?:DELETE FROM products where products.id IN(SELECT history_products.id FROM history_products WHERE category_id = $ category_id)? – morandi3