我试图添加外键约束来链接我的表格,但是我一直收到这个错误:
Ms 1769,Level 16,State 1,Line 1
外键' fk_customers_titles'引用无效列' title_id'在引用表'客户'。
我已经创建了我的表及其列,并使用ALTER TABLE
语句说明了我的主键。但每当我尝试为任何表添加外键约束时,我都会收到此错误。
这就是我创建表格的方式:
CREATE TABLE customers
(
customer_id char_idtype,
name varchar(50) NOT NULL,
contact_name varchar(30),
address varchar(50),
city varchar(20),
region varchar(15),
country_code varchar(10),
country varchar(15),
phone varchar(20),
fax varchar(20)
);
GO
CREATE TABLE titles
(
title_id char(3) NOT NULL,
description varchar(35) NOT NULL
);
GO
这就是我添加主键的方式:
ALTER TABLE customers
ADD PRIMARY KEY (customer_id);
GO
ALTER TABLE titles
ADD PRIMARY KEY (title_id);
GO
这就是我添加外键约束的方法:
ALTER TABLE customers
ADD CONSTRAINT fk_customers_titles
FOREIGN KEY (title_id)
REFERENCES titles(title_id);
我使用的是Microsoft SQL Server Management Studio 2012。
感谢您的帮助, 谢谢
答案 0 :(得分:3)
我认为错误非常明确:customers
没有title_id
。你需要添加它。 。
ALTER TABLE customers ADD title_id char(3);
或者将其放在CREATE TABLE
声明中。
答案 1 :(得分:1)
您的脚本应如下所述。
CREATE TABLE titles
(
title_id char(3) Primary key NOT NULL,
description varchar(35) NOT NULL
);
GO
CREATE TABLE customers
(
customer_id char(3) primary key,
title_id char(3) foreign key references titles,
name varchar(50) NOT NULL,
contact_name varchar(30),
address varchar(50),
city varchar(20),
region varchar(15),
country_code varchar(10),
country varchar(15),
phone varchar(20),
fax varchar(20)
);
GO