Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Kemas Kini Berbilang Baris dalam Pertanyaan PostgreSQL Tunggal?

Bagaimanakah Saya Boleh Kemas Kini Berbilang Baris dalam Pertanyaan PostgreSQL Tunggal?

Linda Hamilton
Lepaskan: 2025-01-12 22:42:43
asal
509 orang telah melayarinya

How Can I Update Multiple Rows in a Single PostgreSQL Query?

PostgreSQL pertanyaan tunggal mengemas kini berbilang baris

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan