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

Mengganti nama tabel InnoDB tanpa memperbarui referensi kunci asing?

Pertanyaan lama, tetapi mengikuti adalah cara yang mungkin. Pindahkan data pada dasarnya daripada mengganti nama tabel. Tentu saja Anda perlu memastikan data baru mematuhi aturan kunci asing.

SET foreign_key_checks = 0;
CREATE TABLE IF NOT EXISTS foo_old LIKE foo;
INSERT INTO foo_old SELECT * FROM foo;
TRUNCATE foo;
INSERT INTO foo SELECT * FROM foo_new;

Pastikan Anda menjalankannya sebagai satu kueri sehingga foreign_key_checks berlaku untuk semuanya. Semoga membantu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Diperlukan untuk menggabungkan 2 tabel dengan FK mereka di tabel ke-3

  2. ORDER BY satu ID ketika ada lebih banyak ID yang sama dalam satu tabel

  3. LOAD DATA LOCAL INFILE memberikan kesalahan Perintah yang digunakan tidak diizinkan dengan versi MySQL ini

  4. .Net ORM yang bekerja dengan baik dengan MySQL

  5. MySQL Trigger untuk memasukkan data ke DB yang berbeda