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

tidak dapat menjatuhkan kunci asing

Solusinya dijelaskan di sini oleh Chris White bekerja untuk saya.

Akar masalah adalah bahwa MySQL membuat indeks dan kunci asing. Keduanya harus dihapus (kunci asing pertama bertentangan dengan apa yang dikatakan Chris).

  1. tampilkan buat tabel table_name;

    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. Hapus batasan kunci asing:

    ALTER TABLE table_name DROP FOREIGN KEY `table_name_ibfk_1`;
    
  3. Hapus kuncinya

    ALTER TABLE table_name DROP KEY `column_tablein_26440ee6`;
    

Itu berhasil untuk saya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. nilai mysql NULL di mana di CLAUSE

  2. Kesalahan dalam pembuatan tabel

  3. kunci utama komposit (alfanumerik) dan peningkatan otomatis

  4. Perbarui baris dengan data dari baris lain dalam tabel yang sama

  5. layanan MySQL di komputer lokal dimulai dan kemudian berhenti