这是脚本的一小部分(即该脚本的第一行):当我尝试执行它时说我:
错误代码:1005。无法创建表'test.paese'(errno:150)0.062秒
当我尝试从 MySQL 执行“Forward Engineer”时,它回复了我一些问题:
如果 MySQL 从 CREATE TABLE 语句中报告错误号 1005,并且错误消息是指错误 150,则表创建失败,因为外键约束是没有正确形成。
`SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
设置@OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS,FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL';
如果不存在 `test` 则创建 SCHEMA 默认字符集 latin1 COLLATE latin1_swedish_ci ;
使用`测试`;
-------------------------------------------------- -----
-- 表`test`.`SETTORE`
-------------------------------------------------- -----
如果不存在 `test`.`SETTORE` (
`Comune` CHAR NOT NULL ,
`superficie` INT(11) NULL ,
主键(`Comune`))
引擎 = InnoDB;
-------------------------------------------------- -----
-- 表`test`.`PAESE`
-------------------------------------------------- -----
如果不存在 `test`.`PAESE` (
`Nome-paese` CHAR NOT NULL ,
`Comune` CHAR NOT NULL ,
`num_abitanti` INT(11) NULL ,
`altitudine` INT(11) NULL ,
`IDpaese` INT(11) NOT NULL ,
PRIMARY KEY (`Nome-paese`, `Comune`) ,
索引 `Comune` (`Comune` ASC) ,
唯一索引 `idPAESE_UNIQUE` (`IDpaese` ASC) ,
约束`公社`
外键(`Comune`)
参考 `test`.`SETTORE` (`Comune`)
删除设置为空
更新级联)
引擎 = InnoDB;
-------------------------------------------------- -----
-- 表`test`.`PERIODO`
-------------------------------------------------- -----
如果不存在则创建表`test`.`PERIODO`(
`Settimana` INT(11) NOT NULL ,
主键(`Settimana`))
引擎 = InnoDB;
-------------------------------------------------- -----
-- 表 `test`.`TIPO-INIZIATIVA`
-------------------------------------------------- -----
如果不存在 `test`.`TIPO-INIZIATIVA`,则创建表(
`Nome-tipo-iniziativa` CHAR NOT NULL ,
主键 (`Nome-tipo-iniziativa`) )
引擎 = InnoDB;
-------------------------------------------------- -----
-- 表`test`.`INIZIATIVA`
-------------------------------------------------- -----
如果不存在 `test`.`INIZIATIVA`,则创建表(
`Nome-tipo-iniziativa` CHAR NOT NULL ,
`Settimana` INT(11) NOT NULL ,
`Nome-paese` CHAR NOT NULL ,
`Comune` CHAR NOT NULL ,
`descrizione` VARCHAR(45) ,
`costo_intero` FLOAT NULL ,
`costo_ridotto` FLOAT NULL ,
`orario_apertura` 时间 NULL ,
`orario_chiusura` 时间 NULL ,
主键(`Nome-tipo-iniziativa`,`Settimana`,`Nome-paese`,`Comune`),
INDEX `Nome-paese` (`Nome-paese` ASC) ,
索引 `Comune` (`Comune` ASC) ,
索引`Settimana` (`Settimana` ASC) ,
索引 `Nome-tipo-iniziativa` (`Nome-tipo-iniziativa` ASC) ,
约束`Nome-paese`
外键(`Nome-paese`)
参考 `test`.`PAESE` (`Nome-paese` )
删除设置为空
在更新级联时,
约束`公社`
外键(`Comune`)
参考 `test`.`PAESE` (`Comune`)
删除设置为空
在更新级联时,
约束`Settimana`
外键(`Settimana`)
参考 `test`.`PERIODO` (`Settimana` )
删除设置为空
在更新级联时,
约束`Nome-tipo-iniziativa`
外键(`Nome-tipo-iniziativa`)
参考 `test`.`TIPO-INIZIATIVA` (`Nome-tipo-iniziativa` )
删除设置为空
更新级联)
引擎= InnoDB;`
因此,DBMS 首先创建表SETTORE,然后在执行CREATE TABLE PAESE时停止。我在这些行中找不到错误,请帮助我,我非常需要它!