errno: 150 "Foreign key constraint is incorrectly formed")
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;
Error SQL query:
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 said:
agenceassurance
. operation
(errno: 150 "Foreign key constraint is incorrectly formed") (Details…) CONSTRAINT pk_Log主键(idLogin,用户名):尝试如下操作:CONSTRAINT pk_Log主键(用户名),因为:一次,两个带有PK的字段不能用作FK。
The field userName in Logininfo table must be UNIQUE. You can only have a foreign key referencing a unique field.
Just like this:
userName VARCHAR(50) NOT NULL UNIQUE
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.