在MySQL服务器上运行以下命令时出现错误。
CREATE TABLE users (
userID INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY(userID),
firstname VARCHAR(100) NOT NULL,
lastname VARCHAR(100) NOT NULL,
username VARCHAR(120) NOT NULL UNIQUE,
hashpass VARCHAR(100) NOT NULL
) ENGINE=INNODB ;
CREATE TABLE posts (
postID INT AUTO_INCREMENT,
text VARCHAR(1000),
imageURI VARCHAR(100),
userID VARCHAR(120) NOT NULL,
PRIMARY KEY(postID),
FOREIGN KEY (userID)
REFERENCES users (userID)
ON DELETE CASCADE,
tags VARCHAR(500)
) ENGINE=INNODB;
我收到以下错误:
Cannot add foreign key constraint
尝试使用与主键相同的类型users.userID int
--在外键上也使用-- posts.userID
。
尝试这样:
CREATE TABLE users (
userID INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY(userID),
firstname VARCHAR(100) NOT NULL,
lastname VARCHAR(100) NOT NULL,
username VARCHAR(120) NOT NULL UNIQUE,
hashpass VARCHAR(100) NOT NULL
) ENGINE=INNODB ;
CREATE TABLE posts (
postID INT AUTO_INCREMENT,
text VARCHAR(1000),
imageURI VARCHAR(100),
userID INT NOT NULL, <---Change here
PRIMARY KEY(postID),
FOREIGN KEY (userID)
REFERENCES users (userID)
ON DELETE CASCADE,
tags VARCHAR(500)
) ENGINE=INNODB;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句