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

Cara mengulang semua tabel pada database untuk memperbarui kolom

Salah satu opsi yang tidak merepotkan adalah membuat kueri yang menghasilkan UPDATE pernyataan yang ingin Anda jalankan di semua tabel:

SELECT CONCAT('UPDATE ', a.table_name, ' SET date = "2016-04-20" WHERE name = "Example";')
FROM information_schema.tables a
WHERE a.table_schema = 'YourDBNameHere'

Anda dapat menyalin output dari kueri ini, menempelkannya di editor kueri, dan menjalankannya.

Pembaruan:

Seperti yang ditunjukkan oleh @PaulSpiegel, solusi di atas mungkin tidak nyaman jika seseorang menggunakan editor seperti HeidiSQL, karena itu akan membutuhkan penyalinan secara manual setiap catatan di kumpulan hasil. Menggunakan trik menggunakan GROUP_CONCAT() akan memberikan satu string yang berisi setiap UPDATE yang diinginkan kueri di dalamnya:

SELECT GROUP_CONCAT(t.query SEPARATOR '; ')
FROM
(
    SELECT CONCAT('UPDATE ', a.table_name,
                  ' SET date = "2016-04-20" WHERE name = "Example";') AS query,
        '1' AS id
    FROM information_schema.tables a
    WHERE a.table_schema = 'YourDBNameHere'
) t
GROUP BY t.id


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Membuat indeks pada stempel waktu untuk mengoptimalkan kueri

  2. Beberapa Pembaruan di MySQL

  3. MySQL JOIN baris terbaru saja?

  4. MENGGUNAKAN klausa Kata Kunci vs ON - MYSQL

  5. Apa perbedaan antara cachePrepStmts dan useServerPrepStmts di MySQL JDBC Driver