能给一个例子我,在运行mysql的外键的时候不出错吗,现在老是error150。
举两个简单的例子吧:
CREATE TABLE city (
cid INT AUTO_INCREMENT PRIMARY KEY,
city_name VARCHAR(255) NOT NULL
);
CREATE TABLE someone (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(60) NOT NULL,
city VARCHAR(255) NOT NULL
);
someone表怎么引用city作为外键呢。能写一个不出错的,能运行的sql语句吗?
我无论在数据库直接操作,还是写语句都出现error150,
CREATE TABLE someone (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(60) NOT NULL,
city VARCHAR(255) NOT NULL,
CONSTRAINT gvffg FOREIGN KEY (city) REFERENCES city (city_name)
);
Foreign key 要指向另一个 table 的 primary key.
把 references 里面的 city_name 换成 cid 看看
相连的两个字段要格式、长度、是否整型、是否为空等都必须一模一样,在创建的时候,必须按顺序创建,保证不出错。
外键确实得是对方表的唯一键
CREATE TABLE someone (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(60) NOT NULL,
city int NOT NULL,
CONSTRAINT gvffg FOREIGN KEY (city) REFERENCES city (cid)
);