微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

mysql – errno:150“外键约束形成错误”)MariaDB

当我运行以下脚本时:

 DROP TABLE IF EXISTS `schemaname`.`tablename` ;

 CREATE TABLE IF NOT EXISTS `schemaname`.`tablename` (
   `id` INT(11) NOT NULL AUTO_INCREMENT,
   `ip` VARCHAR(25) NOT NULL,
   `address` TEXT NULL DEFAULT NULL,
 PRIMARY KEY (`id`))
 ENGINE = InnoDB
 DEFAULT CHaraCTER SET = latin1;

它返回以下错误

Error Code: 1005. Can't create table `schemaname`.`tablename` (errno: 150 "Foreign key constraint is incorrectly formed")

一个具有相同名称的表,但我删除了不同的结构,并且还删除了具有外键的表.

如果我尝试使用其他名称创建它,那么它可以工作.
为什么我不能创建一个与我删除名称相同的表?

解决方法:

查找并删除删除的表之间的外键关系.

当您删除表格时,似乎MariaDB没有自动为您执行此操作.

找到外键关系:

SELECT
  CONSTRAINT_NAME, 
  TABLE_NAME, 
  COLUMN_NAME, 
  REFERENCED_TABLE_NAME, 
  REFERENCED_COLUMN_NAME
FROM @R_243_4045@ION_SCHEMA.KEY_COLUMN_USAGE
WHERE
  REFERENCED_TABLE_NAME = '<table>' OR TABLE_NAME = '<table>';

掉落关系:

DROP FOREIGN KEY <constraint_name>;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐