Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么MySQL Create Table语句失败?_Sql_Mysql_Mysql Error 1005 - Fatal编程技术网

为什么MySQL Create Table语句失败?

为什么MySQL Create Table语句失败?,sql,mysql,mysql-error-1005,Sql,Mysql,Mysql Error 1005,使用mySQLAdmin工具,我尝试创建一个表。该工具生成SQL语句,然后在不知道是什么错误的情况下回复“无法创建表” 这是: CREATE TABLE `C121535_vubridge`.`Products` ( `pr_ID` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, `pr_Name` VARCHAR(45) NOT NULL, `pr_Type` VARCHAR(2) NOT NULL COMMENT 'H=Hand Series

使用mySQLAdmin工具,我尝试创建一个表。该工具生成SQL语句,然后在不知道是什么错误的情况下回复“无法创建表”

这是:

CREATE TABLE `C121535_vubridge`.`Products` (
  `pr_ID` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  `pr_Name` VARCHAR(45) NOT NULL,
  `pr_Type` VARCHAR(2) NOT NULL COMMENT 'H=Hand Series V=VuBridge software E=Event Subs S=Sponsoring',
  `pr_AuthorID` INTEGER UNSIGNED COMMENT '= m_ID (for Bridge Hand Series',
  `pr_SponsorID` INTEGER UNSIGNED NOT NULL,
  `pr_DateCreation` DATETIME NOT NULL,
  `pr_Price` FLOAT NOT NULL,
  `pr_DescriptionText` TEXT,
  `pr_Description` VARCHAR(245),
  PRIMARY KEY (`pr_ID`),
  CONSTRAINT `FK_prAuthor` FOREIGN KEY `FK_prAuthor` (`pr_AuthorID`)
    REFERENCES `Members` (`m_ID`)
    ON DELETE SET NULL
    ON UPDATE NO ACTION,
  CONSTRAINT `FK_Sponsor` FOREIGN KEY `FK_Sponsor` (`pr_SponsorID`)
    REFERENCES `Members` (`m_ID`)
    ON DELETE SET NULL
    ON UPDATE NO ACTION
) ENGINE = InnoDB;

有人能帮忙吗?

只需拆分创建表,然后一次尝试一个部分。通过这种方式,您应该能够识别出一行出现故障。

如果我省略外键引用,则创建表对我有效:

CREATE TABLE `Products` (
 `pr_ID` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
 `pr_Name` VARCHAR(45) NOT NULL,
 `pr_Type` VARCHAR(2) NOT NULL COMMENT 'H=Hand Series V=VuBridge software E=Event Subs S=Sponsoring',
 `pr_AuthorID` INTEGER UNSIGNED COMMENT '= m_ID (for Bridge Hand Series',
 `pr_SponsorID` INTEGER UNSIGNED NOT NULL,
 `pr_DateCreation` DATETIME NOT NULL,
 `pr_Price` FLOAT NOT NULL,
 `pr_DescriptionText` TEXT,
 `pr_Description` VARCHAR(245),
 PRIMARY KEY (`pr_ID`)
)

…所以我倾向于相信,
C121535_vubridge.MEMBERS
并不存在<代码>C121535_vubridge。在运行PRODUCTS表的CREATE TABLE语句之前,需要创建成员。

我在参考手册中注意到,如果为CONSTRAINT子句指定了符号子项(在您的情况下,每个子句中外键前的反引号字符串,
FK_prAuthor
FK_赞助商
)在数据库中必须是唯一的。是否是唯一的?如果不是,可以省略该符号,InnoDB将自动分配


类似地,FK引用的表可能没有此create语句所期望的结构。

很可能现有数据未通过约束,或者这会导致单独的错误?