Oracle 声明外键,错误:ORA-00907:缺少右括号
我创建了一个名为sv_hardware的表(列:ip_uadrs) 现在我想创建一个表,其中ip_uAdr是外键,因此我编码:Oracle 声明外键,错误:ORA-00907:缺少右括号,oracle,Oracle,我创建了一个名为sv_hardware的表(列:ip_uadrs) 现在我想创建一个表,其中ip_uAdr是外键,因此我编码: Create table sv_req_info( "server_no" number not null PRIMARY KEY, "host_ name" varchar2(100), "cur_ status" varchar2(100), "loc " varchar2(100), "buss_roles" varchar2(100), "rack _no"
Create table sv_req_info(
"server_no" number not null PRIMARY KEY,
"host_ name" varchar2(100),
"cur_ status" varchar2(100),
"loc " varchar2(100),
"buss_roles" varchar2(100),
"rack _no" varchar2(100),
"rk U_ consump" varchar2(100),
"Rmarks_owner" varchar2(100),
"ip_ adrs " varchar2(100) ,
"sv_type_cat" varchar2(100),
date_added date,
CONSTRAINT fk_sv_hardware
FOREIGN KEY (ip_adrs)
REFERENCES sv_hardware(ip_adrs));
出现错误ORA-00907:缺少右括号
CREATE TABLE sv_hardware
(
ip_adrs VARCHAR(10) PRIMARY KEY
)
;
CREATE TABLE sv_req_info
(
"server_no" NUMBER NOT NULL PRIMARY KEY,
"host_ name" VARCHAR2(100),
"cur_ status" VARCHAR2(100),
"loc " VARCHAR2(100),
"buss_roles" VARCHAR2(100),
"rack no" VARCHAR2(100),
"rk U consump" VARCHAR2(100),
"Rmarks_owner" VARCHAR2(100),
"ip_adrs" VARCHAR2(100),
"sv_type_cat" VARCHAR2(100),
date_added DATE,
CONSTRAINT fk_sv_hardware FOREIGN KEY ("ip_adrs") REFERENCES sv_hardware (ip_adrs)
)
;
上面的工作,对我来说似乎是引用“ip\u ADR”的问题。问题似乎是您的专栏名为
“ip\u ADR”
(带空格),外键提到ip\u ADR
其中一个是错的,你应该知道是哪一个
作为旁注,我强烈建议不要使用带有任何字符的标识符,这些字符会迫使您引用该标识符。不要使用空格,使用下划线。你确定列名中需要所有这些空格吗?再举一个例子,说明为什么双引号的非标准标识符是可恶的,所有思维正常的人都会避免。我认为这不是引号,而是ip_ADR的拼写错误(一次带空格,一次不带空格),我注意到了。我在编辑过程中设法删除了那个空格。谢谢大家。是的,我永远不会使用双引号非标准标识符和空格。