SQL:ORA-00906:缺少左括号
我在创建表时遇到问题: 这是我的指示:SQL:ORA-00906:缺少左括号,sql,oracle,Sql,Oracle,我在创建表时遇到问题: 这是我的指示: CREATE TABLE PRATICIEN ( num_pra INTEGER PRIMARY KEY, nom_pra VARCHAR(30) NOT NULL, FOREIGN KEY code_etage REFERENCES ETAGE(code_etage)); ORA-00906:缺少左括号00906。00000-“缺少左括号” ETAGE存在,创建此表时没有错误: CREATE TABLE ETAGE ( code_etage SMALL
CREATE TABLE PRATICIEN (
num_pra INTEGER PRIMARY KEY,
nom_pra VARCHAR(30) NOT NULL,
FOREIGN KEY code_etage REFERENCES ETAGE(code_etage));
ORA-00906:缺少左括号00906。00000-“缺少左括号”
ETAGE
存在,创建此表时没有错误:
CREATE TABLE ETAGE (
code_etage SMALLINT PRIMARY KEY,
designation VARCHAR(30));
外键引用周围需要括号。这就是语法的定义方式 您还需要声明该列。
外键
是列的属性,而不是列定义:
CREATE TABLE PRATICIEN (
num_pra INTEGER PRIMARY KEY,
nom_pra VARCHAR(30) NOT NULL,
code_etage SMALLINT,
FOREIGN KEY (code_etage) REFERENCES ETAGE(code_etage)
);
是一个dbfiddle。外键引用周围需要括号。这就是语法的定义方式 您还需要声明该列。
外键
是列的属性,而不是列定义:
CREATE TABLE PRATICIEN (
num_pra INTEGER PRIMARY KEY,
nom_pra VARCHAR(30) NOT NULL,
code_etage SMALLINT,
FOREIGN KEY (code_etage) REFERENCES ETAGE(code_etage)
);
是一个dbfiddle。您只需删除
外键
关键字:
CREATE TABLE PRATICIEN (
num_pra INTEGER PRIMARY KEY,
nom_pra VARCHAR(30) NOT NULL,
code_etage REFERENCES ETAGE(code_etage) -- please note that type is inferred
);
您只需删除
外键
关键字:
CREATE TABLE PRATICIEN (
num_pra INTEGER PRIMARY KEY,
nom_pra VARCHAR(30) NOT NULL,
code_etage REFERENCES ETAGE(code_etage) -- please note that type is inferred
);
最简单的是
create table praticien
( num_pra integer primary key
, nom_pra varchar2(30) not null
, code_etage references etage );
但是,如果ETAGE
具有多个唯一约束,则指定引用列可能被视为最佳做法:
create table praticien
( num_pra integer primary key
, nom_pra varchar2(30) not null
, code_etage references etage(code_etage) );
(顺便说一句,注意在Oracle中它是varchar2
,而不是varchar
)最简单
create table praticien
( num_pra integer primary key
, nom_pra varchar2(30) not null
, code_etage references etage );
但是,如果ETAGE
具有多个唯一约束,则指定引用列可能被视为最佳做法:
create table praticien
( num_pra integer primary key
, nom_pra varchar2(30) not null
, code_etage references etage(code_etage) );
(顺便说一下,注意在Oracle中是varchar2
,而不是varchar
)