【问题标题】:Can not drop FOREIGN KEY in Maria DB不能在 Mariadb 中删除 FOREIGN KEY
【发布时间】:2016-07-24 22:35:52
【问题描述】:

显示创建表用户; 我会得到这个结果。

    CREATE TABLE `USERS` (
  `UR_ID` bigint(20) NOT NULL,
  `DEPT_ID` bigint(20) DEFAULT NULL,
  `DN_ID` bigint(20) NOT NULL,
  `CREATED_BY` varchar(45) NOT NULL,
  `LAST_UPDATED_BY` varchar(45) NOT NULL,
  `LAST_UPDATED_DT` datetime NOT NULL,
  `UR_LOGIN_NAME` varchar(255) NOT NULL,
  `TRANS_ID` bigint(20) DEFAULT NULL,
  PRIMARY KEY (`UR_ID`),
  UNIQUE KEY `Uk11` (`UR_LOGIN_NAME`),
  KEY `SYS_C0018877` (`UR_ID`),
  KEY `SYS_C0018878` (`DEPT_ID`),
  KEY `SYS_C0018879` (`DN_ID`),
  **KEY `SYS_C0018880` (`CREATED_BY`),**
  KEY `SYS_C0018881` (`LAST_UPDATED_BY`),
  KEY `SYS_C0018882` (`LAST_UPDATED_DT`),
  KEY `SYS_C0018883` (`UR_LOGIN_NAME`),
  CONSTRAINT `fk_USERS_2` FOREIGN KEY (`DN_ID`) REFERENCES `DESIGNATION` (`DN_ID`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |

现在我想删除外键 CREATED_BY 并运行 ALTER TABLE USERS 删除外键 SYS_C0018880; 错误 1025 (HY000):将“./dbname/USERS”重命名为“./dbname/#sql2-3ea-2c”时出错(错误号:152)

我也用过

ALTER TABLE USERS DROP FOREIGN KEY CREATED_BY;

但我又遇到了同样的错误

将“./dbname/USERS”重命名为“./dbname/#sql2-3ea-2c”时出错(错误号:152)

请任何人分享我如何删除此外键,如果可能,请分享 KEY SYS_C0018880 (CREATED_BY) 是什么。我知道这个键是外键,因为在 desc table_name 上我得到了这个结果;

| DN_ID |大整数(20) |否 |穆尔 |空 | | |创建_BY | varchar(45) |否 |穆尔 |空 | | | LAST_UPDATED_BY | varchar(45) |否 |穆尔 |空 | | | LAST_UPDATED_DT |日期时间 |否 |穆尔 |空 |

【问题讨论】:

    标签: mysql sql database foreign-keys mariadb


    【解决方案1】:

    默认情况下,如果你没有指定外键名,MariaDB会在外键名后附加_ibfk。所以,请使用以下代码格式删除你没有指定外键名的外键:

    ALTER TABLE table_name DROP FOREIGN KEY foreign_key_ibfk; 
    

    【讨论】:

      【解决方案2】:

      根本原因是数据目录中的文件 #sql2-3ea-2c* 和/或内部 InnoDB 字典中具有此类名称的表。这将阻止对 USERS 表进行任何 ALTER 操作。在 google 中搜索“删除孤立的 innodb 表”以获取指令 reg。那个

      【讨论】:

        【解决方案3】:

        使用键名而不是外键

         ALTER TABLE USERS DROP KEY SYS_C0018880
        

        【讨论】:

        • 我要删除 KEY SYS_C0018880 (CREATED_BY), 键,我不想删除外键 "DN_ID"
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-04-29
        • 2016-11-04
        • 2016-06-17
        • 1970-01-01
        • 2020-03-02
        • 2019-11-14
        • 2021-05-30
        相关资源
        最近更新 更多