首页 > 解决方案 > 引用列的数量必须与引用的列匹配

问题描述

我对 SQL 比较陌生,我不断收到以下错误“外键引用列表中的列数不等于引用列表中的列数。”

create table client
(name varchar(30),
 phone int,
 city varchar(20),
 state char(2) CHECK(state='MN' OR state='ND' OR state='SD' OR state='WI' or state='IA'),
 primary key(name,phone));

create table owns_vehicle
(name varchar(30),
 phone int,
 vin varchar(10),
 primary key(name, phone, vin),
 foreign key(name,phone) references client);

create table service_appointment
(mydate date,
 vin varchar(10),
 mechanic varchar(15),
 description varchar(30) NOT NULL,
 cost int CHECK (cost>=0),
 primary key(mydate,vin),
 foreign key(vin) references owns_vehicle);

这是导致问题的行:

foreign key(vin) references owns_vehicle);

有谁知道我为什么会收到这个错误?

标签: sqloracle

解决方案


您尝试引用owns_vehicle,因此您需要引用所有表格PRIMARY KEY列,即name, phone, vin. 但是您的外键只有vin,因此name, phone缺少两列 ( )。


推荐阅读