Artikel ini meneroka cara mengemas kini berbilang baris data menggunakan satu pertanyaan dalam pangkalan data PostgreSQL. Walaupun PostgreSQL tidak menyokong pengemaskinian berbilang baris secara langsung, terdapat beberapa cara untuk mencapai matlamat ini.
Satu pendekatan ialah menggunakan gabungan sintaks UPDATE ... FROM
dan jadual pemetaan. Ini membolehkan berbilang lajur dikemas kini dan memberikan fleksibiliti yang lebih besar. Kod berikut menunjukkan pendekatan ini:
<code class="language-sql">UPDATE test 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>
Lebih banyak lajur boleh ditambah mengikut keperluan:
<code class="language-sql">UPDATE test AS t SET column_a = c.column_a, column_c = c.column_c FROM (VALUES ('123', 1, '---'), ('345', 2, '+++') ) AS c(column_b, column_a, column_c) WHERE c.column_b = t.column_b;</code>
Satu lagi pendekatan yang lebih bersih ialah menggunakan sintaks INSERT ... ON CONFLICT ... UPDATE
PostgreSQL, yang menggabungkan fungsi sisipan dan kemas kini ke dalam satu pertanyaan. Walau bagaimanapun, kaedah ini memerlukan mencipta indeks unik pada lajur yang mengenal pasti baris yang akan dikemas kini.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Kemas Kini Berbilang Baris dalam Pertanyaan PostgreSQL Tunggal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!