sql >> データベース >  >> RDS >> Mysql

外部キーをドロップできません

    here by ChrisWhite で説明されているソリューション 私のために働いた。

    根本的な問題は、MySQLがインデックスと外部キーの両方を作成することです。両方を削除する必要があります(Chrisが言ったこととは反対の外部キーが最初にあります)。

    1. show create table 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. 外部キー制約を削除します:

      ALTER TABLE table_name DROP FOREIGN KEY `table_name_ibfk_1`;
      
    3. キーを削除する

      ALTER TABLE table_name DROP KEY `column_tablein_26440ee6`;
      

    それは私のためにそれをしました。



    1. mysqlが変更されたときにプッシャーを呼び出す

    2. エラー:ローカルデータの読み込みが無効になっています-これはクライアント側とサーバー側の両方で有効にする必要があります

    3. HQLはexecuteUpdateで不完全な「クロスジョイン」を生成しています

    4. MySqlトリガーでINSERT操作を中止するにはどうすればよいですか?