在被引用表中没有与外键的引用列的列表匹配的主键或候选键 本帖最后由 llsy4275 于 2009-06-29 14:28:07 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 外键一定要与主键对应,proID在province中是主键,所以成立,但在city中,只要主键的一部分,所以建立不了,应该ALTER TABLE county ADD CONSTRAINT FOREIGN KEY (cityId,proID) REFERENCES city(cityId,proID); 这样写后仍然出现同样的错误:错误代码:1776,在被引用表city中没有与外键X的引用列的列表匹配的主键或候选键 city表中单独建立一个id作为主键,proid和cityid作为唯一约束,后面的表直接引用该主键。 create table province (proID varchar(2) PRIMARY KEY,proName varchar(50) not null);create table city (cityID varchar(2),proID varchar(2),cityName varchar(50),PRIMARY KEY(cityID,proID));ALTER TABLE city ADD FOREIGN KEY (proID) REFERENCES province (proID);create table county (countyID varchar(2),cityID varchar(2) ,proID varchar(2) FOREIGN KEY(proID) REFERENCES province(proID),countyName varchar(50),PRIMARY KEY(countyID,cityID,proID));ALTER TABLE county ADD CONSTRAINT [外键名称] FOREIGN KEY(cityId,proId) REFERENCES city(cityId,proID) ALTER TABLE county ADD CONSTRAINT FOREIGN KEY (cityId,proID) REFERENCES city(cityId,proID); 这里的cityId与proID顺序不能乱,乱了就搞不定了 不想自定义外键名称就这样:ALTER TABLE county ADD FOREIGN KEY(cityId,proId) REFERENCES city(cityId,proID) 3个关联表查询问题 怎么打不到“保存”这2个字了 问一个SQL语句的写法(问题解决马上结贴) 数据库连接问题 我都不知道这个问题要怎么说了!可以的话请大家进来看看 关于触发器 临时表的问题 求一sql server 200 建id方法,数据库太大无法建立 如何查看dts 包中的脚本代码呢? SQL语句莫名报错,请求解答,在线等 怎么只取部分数据来分页呢?比如CSDN的贴子只显示前500条. 大家进来讨论一下,这个update带逗号的语句怎么会结果不对
错误代码:1776,在被引用表city中没有与外键X的引用列的列表匹配的主键或候选键
proID varchar(2) PRIMARY KEY,
proName varchar(50) not null
);
create table city (
cityID varchar(2),
proID varchar(2),
cityName varchar(50),
PRIMARY KEY(cityID,proID)
);
ALTER TABLE city ADD FOREIGN KEY (proID) REFERENCES province (proID);create table county (
countyID varchar(2),
cityID varchar(2) ,
proID varchar(2) FOREIGN KEY(proID) REFERENCES province(proID),
countyName varchar(50),
PRIMARY KEY(countyID,cityID,proID)
);
ALTER TABLE county ADD CONSTRAINT [外键名称] FOREIGN KEY(cityId,proId) REFERENCES city(cityId,proID)
这里的cityId与proID顺序不能乱,乱了就搞不定了
ALTER TABLE county ADD FOREIGN KEY(cityId,proId) REFERENCES city(cityId,proID)