【发布时间】:2018-05-09 13:20:24
【问题描述】:
errno: 150 "外键约束格式不正确")
DROP DATABASE IF EXISTS AgenceAssurance;
CREATE DATABASE IF NOT EXISTS AgenceAssurance;
USE AgenceAssurance;
CREATE TABLE Logininfo (
idLogin INT(3) PRIMARY KEY NOT NULL AUTO_INCREMENT,
userName VARCHAR(50) NOT NULL,
pass VARCHAR(50),
usertype VARCHAR(50) DEFAULT NULL,
GrantedKey VARCHAR(8) DEFAULT NULL
)ENGINE = InnoDB;
CREATE TABLE Operation (
idOpt INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
libelOpt TEXT,
dateOpt DATETIME DEFAULT now(),
userName VARCHAR(50),
CONSTRAINT fk_login FOREIGN KEY (userName) REFERENCES Logininfo (userName)
)ENGINE = InnoDB;
错误 SQL 查询:
CREATE TABLE Operation (
idOpt INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
libelOpt TEXT,
dateOpt DATETIME DEFAULT now(),
userName VARCHAR(50),
CONSTRAINT fk_login FOREIGN KEY (userName) REFERENCES Logininfo (userName)
)ENGINE = InnoDB
MySQL 说:
1005 - 无法创建表 agenceassurance.operation (errno: 150 "外键约束格式不正确") (详情...)
【问题讨论】:
-
在引用表中,必须有一个索引,其中外键列按相同顺序列为第一列。 - dev.mysql.com/doc/refman/5.6/en/create-table-foreign-keys.html - 不是你的 fk 拥有的东西
-
我该如何纠正这个问题
-
您有复合主键,并且您正在使用其中一列作为外键检查此stackoverflow.com/questions/10565846/…
-
请检查以上更改
-
@KedarLimaye 我只创建了一个主键我更改了表以分别添加外键
标签: mysql foreign-keys constraints create-table