错误: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;
Error 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说:
2 回答
CONSTRAINT pk_Log PRIMARY KEY (idLogin, userName): 尝试如下:CONSTRAINT pk_Log PRIMARY KEY(userName)因为:一次两个字段用PK,不能用作FK .
Logininfo 表中的字段 userName 必须是UNIQUE . 您只能使用引用唯一字段的外键 .
像这样: