我是pl / sql的新手,无法在以下脚本中找出问题所在。首先,我执行了以下脚本:
CREATE TABLE Cladiri (
id_cladire varchar2(5) constraint pk_cladire primary key,
denumire_cladire varchar2(50),
numar_cladire number(2),
adresa varchar2(50),
cod_postal varchar2(15)
);
成功创建了一个表。接下来,我想用引用
id_cladire
的外键创建一个新表:CREATE TABLE Companii (
id_companie varchar2(5) constraint pk_companie primary key,
denumire_companie varchar2(50),
numar_cladire number(4),
numarul_de_telefon varchar2(20),
numarul_de_oficii number(4),
constraint fk_companie_cladire foreign key (id_cladire) references
Cladiri(id_cladire)
);
并且在执行最后一个脚本时收到以下错误:
ORA-00904:“ ID_CLADIRE”:无效的标识符
问题是什么?
最佳答案
您需要将列id_cladire
添加到Companii
表中:
CREATE TABLE Companii (
id_companie varchar2(5) constraint pk_companie primary key,
denumire_companie varchar2(50),
numar_cladire number(4),
numarul_de_telefon varchar2(20),
numarul_de_oficii number(4),
id_cladire VARCHAR2(5), -- here
constraint fk_companie_cladire foreign key (id_cladire) references
Cladiri(id_cladire)
);
-- column + type + constraint
要么:
CREATE TABLE Companii (
id_companie varchar2(5) constraint pk_companie primary key,
denumire_companie varchar2(50),
numar_cladire number(4),
numarul_de_telefon varchar2(20),
numarul_de_oficii number(4),
id_cladire CONSTRAINT fk_companie_cladire references Cladiri(id_cladire)
-- column + constraint (type is inferred)
);
DBFiddle Demo