Pembaruan postgresql mengembalikan nilai lama

Di PostgreSQL, gunakan pernyataan UPDATE untuk mengubah data yang ada di tabel. Pernyataan UPDATE hanya memperbarui data dalam tabel dan tidak mengubah struktur tabel

Sintaksis. Perbarui Tabel

UPDATE 
SET  = ,
     = ,
    ...
WHERE 
RETURNING * |  AS ;

Dalam sintaks di atas

  • Tentukan nama tabel yang ingin Anda perbarui datanya setelah kata kunci UPDATE
  • Setelah kata kunci SET, tentukan satu atau lebih kombinasi kolom dan nilai barunya. Kolom yang tidak ditentukan dalam klausa SET akan memiliki nilai aslinya
  • Klausul WHERE bersifat opsional yang membatasi operasi pembaruan khusus untuk kondisi yang ditentukan. Jika Anda tidak menentukan klausa WHERE, Postgres akan memperbarui semua baris tabel
  • Klausa RETURNING adalah opsional yang akan mengembalikan daftar semua baris atau nilai yang diperbarui dari kolom yang ditentukan

Mari perbarui data pada tabel employee berikut

Pembaruan postgresql mengembalikan nilai lama

Memperbarui Satu Baris

Gunakan klausa WHERE dengan pernyataan UPDATE dan tentukan nilai kunci utama untuk memperbarui satu baris dalam tabel

Misalnya, pernyataan PEMBARUAN berikut akan memperbarui email dari employee yang emp_id=1

Contoh. Perbarui Baris

Menyalin

UPDATE employee
SET email = '[email protected]'
WHERE emp_id = 1;
_

Dalam contoh di atas,

UPDATE employee
SET email = '[email protected]'
WHERE emp_id = 1;
_0 menunjukkan bahwa kami ingin memperbarui data dalam tabel employee,
UPDATE employee
SET email = '[email protected]'
WHERE emp_id = 1;
2 menentukan bahwa kolom email harus diperbarui ke
UPDATE employee
SET email = '[email protected]'
WHERE emp_id = 1;
3.
UPDATE employee
SET email = '[email protected]'
WHERE emp_id = 1;
4 akan memperbarui baris di mana
UPDATE employee
SET email = '[email protected]'
WHERE emp_id = 1;
5 nilainya adalah 1, sehingga membatasi operasi pembaruan hanya untuk satu baris

Berikut ini menampilkan hasil dari kueri di atas di pgAdmin

Pembaruan postgresql mengembalikan nilai lama

Pernyataan UPDATE mengembalikan

UPDATE employee
SET email = '[email protected]'
WHERE emp_id = 1;
_6 yang menunjukkan bahwa ia telah memperbarui 1 baris

Mari verifikasi data yang diperbarui menggunakan kueri SELECT yang ditunjukkan di bawah ini

Pembaruan postgresql mengembalikan nilai lama

PERINGATAN. Jika Anda tidak menentukan klausa

UPDATE employee
SET email = '[email protected]'
WHERE emp_id = 1;
_7, maka itu akan memperbarui nilai kolom email di semua baris

Contoh. Perbarui Semua Baris

Menyalin

UPDATE employee
SET email = '[email protected]';
_

Klausa PENGEMBALIAN dengan UPDATE Pernyataan

Klausa RETURNING mengembalikan nilai baris atau kolom yang diperbarui. Jika Anda menentukan

UPDATE employee
SET email = '[email protected]'
WHERE emp_id = 1;
_8 maka itu akan mengembalikan semua baris yang diperbarui dan jika Anda menentukan
UPDATE employee
SET email = '[email protected]'
WHERE emp_id = 1;
9 maka itu akan mengembalikan nilai dari kolom yang ditentukan. Anda dapat menentukan beberapa kolom yang dipisahkan dengan koma

Pernyataan UPDATE berikut mengembalikan semua baris yang diperbarui

Contoh. KEMBALI *

Menyalin

UPDATE employee
SET birthdate = NULL,
    salary = 10000,
    last_name = 'Blamire'
WHERE emp_id = 4
RETURNING *;

Seperti yang Anda lihat,

UPDATE employee
SET email = '[email protected]';
0 disetel ke NULL,
UPDATE employee
SET email = '[email protected]';
1 disetel ke 10000, dan
UPDATE employee
SET email = '[email protected]';
2 diubah menjadi
UPDATE employee
SET email = '[email protected]';
3 di mana
UPDATE employee
SET email = '[email protected]';
4. Urutan kolom tidak penting dengan klausa SET. Berikut ini menampilkan hasil dari kueri di atas di pgAdmin

Pembaruan postgresql mengembalikan nilai lama

Klausa RETURNING dapat digunakan dengan satu atau lebih kolom. Pernyataan UPDATE berikut mengembalikan beberapa kolom

Contoh. Kolom KEMBALI

Menyalin

UPDATE employee
SET last_name = 'Blamire',
	birthdate = NULL,
	salary = 10000
WHERE emp_id = 4
RETURNING first_name, last_name, salary;

Klausa RETURNING dapat menggunakan kolom tabel apa saja, tidak harus kolom yang digunakan dalam klausa SET e. g. kolom

UPDATE employee
SET email = '[email protected]';
_5 tidak diperbarui tetapi kami masih dapat menerimanya dengan klausa RETURNING. Kueri di atas akan menampilkan hasil berikut di pgAdmin

Pembaruan postgresql mengembalikan nilai lama

Perbarui Gabung

PostgreSQL mendukung pembaruan data dalam satu tabel berdasarkan nilai di tabel lain menggunakan klausa gabungan UPDATE

Contoh

Menyalin

UPDATE 
SET  = 
FROM 
WHERE ;

Pada sintaks di atas, untuk menggabungkan tabel lain dalam pernyataan UPDATE, tentukan klausa FROM dengan tabel kedua dan berikan syarat bergabung dalam klausa WHERE. Klausa FROM harus ada tepat setelah klausa SET

Untuk setiap baris untuk

UPDATE employee
SET email = '[email protected]';
6, pernyataan UPDATE bergabung dengan baris
UPDATE employee
SET email = '[email protected]';
7. Untuk semua baris yang cocok, pernyataan UPDATE memperbarui nilai
UPDATE employee
SET email = '[email protected]';
8 dengan nilai baru yang ditentukan di
UPDATE employee
SET email = '[email protected]';
9

Anggap kita memiliki departemen (tabel induk) dan karyawan (tabel anak) seperti di bawah ini

Pembaruan postgresql mengembalikan nilai lama
Pembaruan postgresql mengembalikan nilai lama

Sekarang kami ingin menaikkan gaji semua karyawan di departemen

UPDATE employee
SET birthdate = NULL,
    salary = 10000,
    last_name = 'Blamire'
WHERE emp_id = 4
RETURNING *;
0 dengan
UPDATE employee
SET birthdate = NULL,
    salary = 10000,
    last_name = 'Blamire'
WHERE emp_id = 4
RETURNING *;
1 sebagai 'IT' menjadi 10% dari gaji mereka saat ini, kami dapat melakukannya dengan mengikuti pernyataan bergabung UPDATE

Contoh

Menyalin

UPDATE Employee emp
SET SALARY = SALARY + (SALARY * 0.10)
FROM Department dept
WHERE emp.dept_id = dept.dept_id
AND dept.dept_name = 'IT';

Pembaruan postgresql mengembalikan nilai lama

Ketika pernyataan UPDATE di atas dijalankan, ini menunjukkan 2 baris diperbarui. Untuk setiap baris tabel Karyawan, ia bergabung dengan tabel Departemen menggunakan

UPDATE employee
SET birthdate = NULL,
    salary = 10000,
    last_name = 'Blamire'
WHERE emp_id = 4
RETURNING *;
2 sebagai kolom yang cocok dan nama departemen sebagai
UPDATE employee
SET birthdate = NULL,
    salary = 10000,
    last_name = 'Blamire'
WHERE emp_id = 4
RETURNING *;
0 dan meningkatkan gaji karyawan tersebut sebesar 10%

Mari pilih data dari tabel

UPDATE employee
SET birthdate = NULL,
    salary = 10000,
    last_name = 'Blamire'
WHERE emp_id = 4
RETURNING *;
_4 dan validasi bagaimana gaji diperbarui. Perhatikan bahwa, ada dua karyawan dengan
UPDATE employee
SET email = '[email protected]'
WHERE emp_id = 1;
_5 sebagai 3 dan 6 milik departemen
UPDATE employee
SET birthdate = NULL,
    salary = 10000,
    last_name = 'Blamire'
WHERE emp_id = 4
RETURNING *;
0 dengan
UPDATE employee
SET birthdate = NULL,
    salary = 10000,
    last_name = 'Blamire'
WHERE emp_id = 4
RETURNING *;
2 sebagai 2

Bagaimana cara MEMPERBARUI nilai di PostgreSQL?

Sintaks. PERBARUI nama_tabel SET kolom1 = nilai1, kolom2 = nilai2. , column = value WHERE [kondisi]; Anda dapat menggabungkan N jumlah kondisi menggunakan operator AND atau OR.

Bagaimana Anda mengembalikan nilai dalam kueri UPDATE di SQL?

Metode update() mengembalikan bilangan bulat yang menunjukkan jumlah pembaruan untuk pernyataan SQL . Metode updateMany() mengembalikan larik bilangan bulat, setiap bilangan bulat menunjukkan jumlah pembaruan untuk satu kali menjalankan pernyataan SQL.

Apakah Postgres melihat UPDATE secara otomatis?

Tampilan yang Dapat Diperbarui. Tampilan sederhana dapat diperbarui secara otomatis . sistem akan mengizinkan pernyataan INSERT , UPDATE dan DELETE untuk digunakan pada tampilan dengan cara yang sama seperti pada tabel biasa.

Bagaimana cara MEMPERBARUI kolom tanggal di PostgreSQL?

PEMBARUAN PostgreSQL .
Pertama, tentukan nama tabel yang ingin Anda perbarui datanya setelah kata kunci UPDATE
Kedua, tentukan kolom dan nilai barunya setelah kata kunci SET. .
Ketiga, tentukan baris mana yang akan diperbarui dalam kondisi klausa WHERE