我是 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": invalid identifier
问题是什么?
最佳答案
您需要将列 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)
);
关于Oracle pl/sql ORA-00904 标识符无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50455304/