mysql - SQL 外键命令不会执行

标签 mysql sql

当尝试执行将外键分配给我的数据库的 SQL 语句时,我收到错误消息,我是不是漏掉了一些简单的东西?

CREATE TABLE `Organisation` ( 
`PK_ORG_ID` INT NOT NULL AUTO_INCREMENT, 
`ORG_NAME` VARCHAR(128) NOT NULL, 
PRIMARY KEY (`PK_ORG_ID`) 
); 

CREATE TABLE `User` ( 
`PK_USER_ID` INT NOT NULL AUTO_INCREMENT, 
`USER_NAME` VARCHAR(128) NOT NULL, 
`FK_USER_ORG` INT NOT NULL, 
PRIMARY KEY (`PK_USER_ID`) 
); 

CREATE TABLE `Issue` ( 
`PK_ISSUE_ID` INT NOT NULL AUTO_INCREMENT, 
`ISSUE_TEXT` VARCHAR(128) NOT NULL, 
`FK_ISSUE_PROPOSED_BY` VARCHAR(255) NOT NULL, 
`ISSUE_UPSCORE` INT NOT NULL, 
`ISSUE_TYPE` INT NOT NULL, 
`ISSUE_TITLE` VARCHAR(255) NOT NULL, 
`FK_ISSUE_CANDIDATE` VARCHAR(255), 
PRIMARY KEY (`PK_ISSUE_ID`) 
); 

CREATE TABLE `Vote Card` ( 
`PK_VOTECARD_ID` INT NOT NULL AUTO_INCREMENT, 
`FK_VOTECARD_USERID` INT NOT NULL, 
`FK_ISSUE_ID` INT NOT NULL, 
`VOTESCORE` INT NOT NULL, 
PRIMARY KEY (`PK_VOTECARD_ID`) 
); 

ALTER TABLE `User` ADD CONSTRAINT `User_fk0` FOREIGN KEY (`FK_USER_ORG`) REFERENCES `Organisation`(`PK_ORG_ID`); 

ALTER TABLE `Issue` ADD CONSTRAINT `Issue_fk0` FOREIGN KEY (`FK_ISSUE_PROPOSED_BY`) REFERENCES `User`(`PK_USER_ID`); 

ALTER TABLE `Issue` ADD CONSTRAINT `Issue_fk1` FOREIGN KEY (`FK_ISSUE_CANDIDATE`) REFERENCES `User`(`PK_USER_ID`); 

ALTER TABLE `Vote Card` ADD CONSTRAINT `Vote Card_fk0` FOREIGN KEY (`FK_VOTECARD_USERID`) REFERENCES `User`(`PK_USER_ID`); 

ALTER TABLE `Vote Card` ADD CONSTRAINT `Vote Card_fk1` FOREIGN KEY (`FK_ISSUE_ID`) REFERENCES `Issue`(`PK_ISSUE_ID`); 

MySQL 产生的错误信息如下

SQL query:


ALTER TABLE `Issue` ADD CONSTRAINT `Issue_fk0` FOREIGN KEY (`FK_ISSUE_PROPOSED_BY`) REFERENCES `User`(`PK_USER_ID`)
MySQL said: Documentation

1005 - Can't create table `youdecide`.`#sql-142a_de` (errno: 150 "Foreign key constraint is incorrectly formed") (Details…)

谢谢你的帮助:)

最佳答案

PK_USER_IDINTFK_ISSUE_PROPOSED_BYVARCHAR ,外键必须与主键数据类型匹配

关于mysql - SQL 外键命令不会执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35436926/

相关文章:

mysql - 如何通过SQL合并相似的项目?

mysql - 基于零合并 SQL 表行

MySQL删除重复行

c# - 无法将 NULL 值插入表的列 'ID'

php - Magento 没有为我的产品编制索引

mysql - 像phpMyAdmin 中的教义多长时间了?

php - SQL:显示来自数据库的最后消息

mysql - 在 MySQL 上存储 BCrypt 哈希的正确方法

mysql - 1114 (HY000) : The table is full

php - php、mysql 排序 asc desc