Ralat MySQL 1093: Memahami Sekatan pada Kemas Kini Jadual dalam Klausa FROM
Ralat MySQL "Anda tidak boleh menentukan jadual sasaran 'table_name ' untuk kemas kini dalam klausa FROM" timbul apabila cuba mengubah suai jadual dari dalam pernyataan SELECTnya sendiri. Sekatan ini berpunca daripada ketidakupayaan MySQL untuk mengemas kini dan merujuk jadual secara serentak dalam operasi yang sama.
Mengatasi Ralat
Untuk mengatasi isu ini, pertimbangkan pendekatan berikut:
UPDATE story_category a INNER JOIN story_category b ON a.category_id = b.category_id SET a.category_id = ...
UPDATE story_category SET category_id = ( SELECT id FROM ( SELECT id FROM category EXCEPT SELECT DISTINCT category_id FROM story_category ) AS x )
SET optimizer_switch = 'derived_merge=off';
Nota: Melumpuhkan pengoptimum pertanyaan bukanlah penyelesaian jangka panjang yang disyorkan dan hanya boleh digunakan sebagai pembetulan sementara. Pertimbangkan pendekatan alternatif untuk penyelenggaraan pangkalan data yang lebih cekap.
Atas ialah kandungan terperinci Bagaimana Saya Boleh Menyelesaikan Ralat MySQL 1093: Tidak Dapat Menentukan Jadual Sasaran untuk Kemas Kini dalam Klausa FROM?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!