PostgreSQL: Memperkemas Kemas Kini Berbilang Baris
PostgreSQL menawarkan kaedah yang cekap untuk mengemas kini berbilang baris secara serentak, kelebihan yang ketara apabila berurusan dengan set data yang banyak atau keadaan kemas kini yang rumit. Tidak seperti pernyataan UPDATE
individu SQL tradisional setiap baris, PostgreSQL menyediakan dua alternatif unggul:
Pendekatan 1: Kemas Kini Bersyarat dengan KES
Ungkapan CASE
membolehkan menetapkan nilai yang berbeza pada baris berdasarkan kriteria tertentu. Struktur pernyataan UPDATE
ialah:
<code class="language-sql">UPDATE table_name SET column_name = CASE WHEN condition1 THEN value1 WHEN condition2 THEN value2 ... ELSE default_value END WHERE condition;</code>
Sebagai contoh, untuk menetapkan column_a
kepada 1 dengan column_b
ialah '123' dan kepada 2 dengan column_b
ialah '345':
<code class="language-sql">UPDATE table_name SET column_a = CASE WHEN column_b = '123' THEN 1 WHEN column_b = '345' THEN 2 ELSE column_a -- Retain original value if condition not met END WHERE column_b IN ('123', '345');</code>
Pendekatan 2: KEMASKINI...DARI untuk Kemas Kini Ringkas
Konstruk UPDATE...FROM
menggunakan jadual atau subkueri yang berasingan untuk mentakrifkan nilai kemas kini, menghasilkan kod yang lebih bersih dan boleh dibaca. Sintaksnya ialah:
<code class="language-sql">UPDATE table_name SET column_names = (SELECT column_names FROM subquery) WHERE condition;</code>
Menggunakan ini pada contoh sebelumnya:
<code class="language-sql">UPDATE table_name AS t SET column_a = c.column_a FROM ( VALUES ('123', 1), ('345', 2) ) AS c(column_b, column_a) WHERE c.column_b = t.column_b;</code>
Teknik PostgreSQL ini meningkatkan kecekapan dan kejelasan kod dengan ketara berbanding dengan pernyataan UPDATE
individu, terutamanya untuk manipulasi data berskala besar.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Kemas Kini Berbilang Baris dengan Cekap dalam Pertanyaan PostgreSQL Tunggal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!