因此,我尝试使旧项目再次工作,但当我将表放回新数据库时,我遇到了这个问题
第777行出现错误1005(HY000):无法创建表****
。#sql-3f2_45
(错误号:150“外键约束的格式不正确”)
有一个表导致了问题:
第一个
参考表:
CREATE TABLE `install__agents` (
`id` int(11) NOT NULL,
`OS` varchar(255) NOT NULL,
`name` varchar(255) NOT NULL,
`zone` varchar(255) NOT NULL,
`IP` text,
`isLog` tinyint(1) NOT NULL DEFAULT '0'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `install__ports` (
`id` int(11) NOT NULL,
`numero` int(11) NOT NULL,
`protocol` varchar(255) NOT NULL,
`isUDP` tinyint(1) NOT NULL DEFAULT '0',
`machine` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `install__zone` (
`slug` varchar(255) NOT NULL,
`status` enum('notpresent','installing','installed') NOT NULL,
`options` text,
`IPrange` text,
`IPsystem` text,
`system` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2条答案
按热度按时间vtwuwzda1#
老实说,错误消息不是很有描述性:-(
要获得有关错误原因的更多详细信息,只需检查InnoDB状态:
所以问题/原因是
There is no index in the referenced table where the referenced columns appear as the first columns
ycl3bljg2#
您需要在引用列上创建索引:
但是您的模式看起来不对,最好使用实体的
ID
。大概是这样的: