Rumah  >  Artikel  >  pangkalan data  >  Bagaimanakah saya boleh Mengemas kini Berbilang Jadual Secara serentak dalam MySQL?

Bagaimanakah saya boleh Mengemas kini Berbilang Jadual Secara serentak dalam MySQL?

DDD
DDDasal
2024-11-03 05:59:30501semak imbas

How can I Update Multiple Tables Simultaneously in MySQL?

Mengemas kini Berbilang Jadual Serentak dalam MySQL

Apabila bekerja dengan pangkalan data hubungan, mungkin perlu mengemas kini data berkaitan merentas berbilang jadual secara serentak. Ini menimbulkan cabaran jika pernyataan kemas kini standard digunakan, kerana ia hanya boleh mengubah suai satu jadual pada satu masa.

Pertimbangkan senario berikut, di mana dua jadual (Jadual_Satu dan Jadual_Dua) memerlukan kemas kini yang sama untuk tujuan penyahnormalan. Walaupun pertanyaan kemas kini untuk setiap jadual adalah hampir sama, ia berbeza dalam nama jadual dan ketersediaan medan.

Kemas Kini Asingkan

Secara tradisinya, kemas kini ini akan dilaksanakan secara berasingan:

UPDATE Table_One SET win = win+1, streak = streak+1, score = score+200 WHERE userid = 1 AND lid = 1 LIMIT 1;
UPDATE Table_Two SET win = win+1, streak = streak+1, score = score+200 WHERE userid = 1 LIMIT 1;

Kemas Kini Berbilang Jadual

Walau bagaimanapun, MySQL menawarkan penyelesaian yang lebih cekap dengan kemas kini berbilang jadual. Dengan menyertai jadual pada medan biasa (dalam kes ini, "userid"), adalah mungkin untuk mengemas kini kedua-dua jadual dengan satu pertanyaan:

UPDATE Table_One a INNER JOIN Table_Two b ON (a.userid = b.userid)
SET
  a.win = a.win+1, a.streak = a.streak+1, a.score = a.score+200,
  b.win = b.win+1, b.streak = b.streak+1, b.score = b.score+200
WHERE a.userid = 1 AND a.lid = 1 AND b.userid = 1;

Adalah penting untuk ambil perhatian bahawa kemas kini berbilang jadual dilakukan tidak menyokong klausa LIMIT, yang boleh menyebabkan kemas kini yang tidak diingini jika tidak digunakan dengan berhati-hati. Penyelesaian alternatif, seperti prosedur tersimpan atau transaksi, mungkin lebih sesuai dalam senario tertentu.

Atas ialah kandungan terperinci Bagaimanakah saya boleh Mengemas kini Berbilang Jadual Secara serentak dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn