我是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)
);
Run Code Online (Sandbox Code Playgroud)
哪个成功创建了一个表.接下来,我想创建一个带有外键引用的新表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)
);
Run Code Online (Sandbox Code Playgroud)
执行最后一个脚本时出现以下错误:
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
Run Code Online (Sandbox Code Playgroud)
要么:
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)
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
543 次 |
| 最近记录: |