Anu*_*man 2 mysql sql database foreign-keys mariadb
显示创建表 USERS;我会得到那个结果。
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 |
Run Code Online (Sandbox Code Playgroud)
现在我想删除外键 CREATED_BY 并运行 ALTER TABLE USERS DROP FOREIGN KEY SYS_C0018880; 错误 1025 (HY000):将“./dbname/USERS”重命名为“./dbname/#sql2-3ea-2c”时出错(errno:152)
我也用过
更改表用户删除外键 CREATED_BY;
但我再次遇到同样的错误
将“./dbname/USERS”重命名为“./dbname/#sql2-3ea-2c”时出错(errno:152)
请任何人分享我如何删除这个外键,如果可能的话请分享什么是 KEY SYS_C0018880( CREATED_BY) 。我知道这个键是外键,因为在 desc table_name 上我得到了这个结果;
| DN_ID | 大整数(20) | 否 | 乘法 | 空| | | 创建者 | varchar(45) | varchar(45) | 否 | 乘法 | 空| | | LAST_UPDATED_BY | varchar(45) | varchar(45) | 否 | 乘法 | 空| | | LAST_UPDATED_DT | 日期时间 | 否 | 乘法 | 空|
小智 6
默认情况下,如果您未指定外键名称,MariaDB 会将 _ibfk 附加到外键名称后。因此,请使用以下代码格式删除未指定外键名称的外键:
ALTER TABLE table_name DROP FOREIGN KEY foreign_key_ibfk;
Run Code Online (Sandbox Code Playgroud)