Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Perbarui Data di Database MySQL

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:


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL - Batasan Kunci Asing Bersyarat

  2. MySQL dan GROUP_CONCAT() panjang maksimum

  3. Apa susunan terbaik untuk digunakan untuk MySQL dengan PHP?

  4. Bagaimana cara mendeklarasikan variabel di MySQL?

  5. sql bergabung sebagai diagram venn