Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Đổi tên bảng InnoDB mà không cập nhật các tham chiếu khóa ngoại cho nó?

Câu hỏi cũ, nhưng sau đây là một cách có thể giải quyết. Cơ bản là di chuyển dữ liệu thay vì đổi tên các bảng. Tất nhiên, bạn cần đảm bảo dữ liệu mới tuân thủ các quy tắc khóa ngoại.

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;

Hãy chắc chắn rằng bạn chạy nó dưới dạng một truy vấn để ngoại_khoản_kiếm áp dụng cho toàn bộ nội dung. Hy vọng điều này sẽ hữu ích.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Truy vấn con đơn giản với OuterRef

  2. SQL cách nhóm theo quý và năm tài chính với trường ngày

  3. phát hiện lỗi mysql mà không thực thi nó

  4. Cú pháp MySQL để đặt Ngày mặc định

  5. Cờ MySQL trong bãi chứa