当我运行以下脚本时:
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;
Run Code Online (Sandbox Code Playgroud)
它返回以下错误:
Error Code: 1005. Can't create table `schemaname`.`tablename` (errno: 150 "Foreign key constraint is incorrectly formed")
Run Code Online (Sandbox Code Playgroud)
有一个具有相同名称的表,但我删除了不同的结构,并且还删除了具有外键的表.
如果我尝试使用其他名称创建它,那么它可以工作.为什么我不能创建一个与我删除的名称相同的表?
查找并删除您删除的表之间的外键关系.
当您删除表格时,似乎MariaDB没有自动为您执行此操作.
找到外键关系:
SELECT
CONSTRAINT_NAME,
TABLE_NAME,
COLUMN_NAME,
REFERENCED_TABLE_NAME,
REFERENCED_COLUMN_NAME
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
REFERENCED_TABLE_NAME = '<table>' OR TABLE_NAME = '<table>';
Run Code Online (Sandbox Code Playgroud)
掉落关系:
DROP FOREIGN KEY <constraint_name>;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18676 次 |
| 最近记录: |