Halaman ini menjelaskan cara memperbarui data yang ada di database MySQL.
Jadi kita sudah menambahkan data ke database kita. Tetapi sekarang kami menyadari bahwa data kami mengandung kesalahan. Apel telah diberi
UnitId
dari 1
— tetapi ini harus 2
.
Anda dapat melihatnya di sini:
Tidak masalah. Kami hanya akan memperbarui catatan itu.
UPDATE
Pernyataan
SQL UPDATE
pernyataan memungkinkan kami untuk memperbarui data dalam database kami. Kita dapat menggunakan pernyataan ini untuk mengubah ID unit dari 1
ke 2
. Untuk melakukan ini, kami menggunakan WHERE
klausa untuk menentukan catatan persis yang perlu kita perbarui. Seperti ini:
UPDATE Fruit SET UnitId = 2 WHERE FruitId = 1;
Umumnya, disarankan saat melakukan UPDATE
operasi, untuk menentukan bidang ID catatan yang Anda coba perbarui (atau apa pun kunci utamanya). Ini membantu menjaga agar tidak secara tidak sengaja memperbarui catatan yang salah. Dalam contoh ini kita tahu bahwa apel memiliki FruitId
dari 1
. Tetapi Anda mungkin tidak selalu mengetahui ID catatan yang Anda coba perbarui. Dalam hal ini Anda dapat melakukan sesuatu seperti ini:
UPDATE Fruit SET UnitId = 2 WHERE FruitName = 'Apple' AND UnitId = 1;
Kita dapat mengikuti salah satu dari mereka dengan SELECT
pernyataan dan inilah hasilnya:
Perhatikan bahwa DateUpdated kolom telah diperbarui juga, meskipun kami tidak menentukan pembaruan untuk kolom itu. Ini karena, ketika kami membuat tabel, kami mengatur kolom itu untuk diperbarui dengan tanggal/waktu saat ini setiap kali ada pembaruan pada catatan.
Berikut kode yang kami gunakan saat membuat kolom itu:
DateUpdated TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
Lebih khusus lagi, ini adalah ON UPDATE CURRENT_TIMESTAMP
yang mengakibatkan kolom diperbarui sekarang ketika kami menjalankan UPDATE
pernyataan.
Pembaruan Aman
Kita dapat dengan mudah membuat UPDATE
perintah seperti ini (tanpa AND UnitId = 1
):
UPDATE Fruit SET UnitId = 2 WHERE FruitName = 'Apple';
Namun, Anda mungkin mengalami kesalahan berikut jika mencoba melakukannya:
Mode Pembaruan Aman
Jika Anda menemukan kesalahan di atas, itu karena koneksi MySQL Anda berjalan dalam mode Pembaruan Aman. Ini membantu mencegah kami menimpa sejumlah besar data secara tidak sengaja. Bahkan, jika kita lupa memasukkan WHERE
klausa kami akan memperbarui setiap catatan dalam tabel!
Ya, menjalankan kode berikut akan membuat setiap record di tabel kita diperbarui menjadi Banana :
UPDATE Fruit SET FruitName = 'Banana'
Jadi ada manfaat nyata yang bisa didapat dengan menjalankan mode Pembaruan Aman.
Namun, jika Anda benar-benar perlu menjalankan kueri tersebut (atau jika semua buah Anda benar-benar telah berubah menjadi pisang), Anda dapat melakukan salah satu hal berikut:
- Ubah kueri Anda untuk menyertakan
KEY
kolom. Kami melakukannya dalam contoh di bagian atas halaman ini. - Nonaktifkan mode Pembaruan Aman.
Nonaktifkan Mode Pembaruan Aman
Jika Anda merasa perlu melakukan UPDATE
operasi tanpa menggunakan KEY
bidang, Anda selalu dapat menonaktifkan mode Pembaruan Aman.
Untuk menonaktifkan mode Pembaruan Aman, jalankan perintah berikut sebelum menjalankan UPDATE
pernyataan:
set sql_safe_updates = 0;
Itu selalu merupakan ide yang baik untuk mengembalikan pengaturan ke keadaan sebelumnya setelah Anda selesai — terutama dengan pengaturan yang dapat berdampak luas seperti ini.
Untuk mengaktifkan mode Pembaruan Aman, jalankan perintah berikut:
set sql_safe_updates = 1;
Bahkan, Anda dapat menjalankan semuanya secara bersamaan, seperti ini:
set sql_safe_updates = 0; UPDATE Fruit SET UnitId = 2 WHERE FruitName = 'Apple'; select * from Fruit; set sql_safe_updates = 1;
Perbarui Beberapa Bidang
Anda dapat memperbarui beberapa bidang dengan menggunakan koma untuk memisahkan setiap tugas bidang. Seperti ini:
UPDATE Fruit SET FruitName = 'Red Grapes', Inventory = '11' WHERE FruitId = 5;
Hasil: