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

không thể đánh rơi khóa ngoại

Giải pháp được mô tả tại đây bởi Chris White đã làm cho tôi.

Vấn đề gốc rễ là MySQL tạo ra cả chỉ mục và khóa ngoại. Cả hai đều phải được gỡ bỏ (khóa ngoài trước tiên trái với những gì Chris đã nói).

  1. hiển thị tạo bảng tên_bảng;

    SHOW CREATE TABLE `table_name`:
    
    | table_name | CREATE TABLE `table_name` (
      `id` int(20) unsigned NOT NULL auto_increment,
      `key_column` smallint(5) unsigned default '1',
      KEY `column_tablein_26440ee6` (`key_column`),  <--- shows key name
      CONSTRAINT `table_name_ibfk_1` FOREIGN KEY (`key_column`) REFERENCES <--- shows foreign key constraint name
    `second_table` (`id`) ON DELETE SET NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
    
  2. Xóa ràng buộc khóa ngoại:

    ALTER TABLE table_name DROP FOREIGN KEY `table_name_ibfk_1`;
    
  3. Xóa khóa

    ALTER TABLE table_name DROP KEY `column_tablein_26440ee6`;
    

Điều đó đã làm nó cho tôi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dữ liệu bị cắt ngắn cho cột?

  2. Ở đâu tất cả đều KHÔNG ĐẦY ĐỦ

  3. làm cách nào để sử dụng một biến trong câu lệnh tạo cơ sở dữ liệu

  4. Hiểu nhiều chỉ mục cột trong truy vấn MySQL

  5. Tôi có thể thay đổi ft_min_word_len trên chia sẻ lưu trữ không?