我正在尝试使用此查询创建一个表(customer)到数据库,
CREATE TABLE customers(
"customer_id" VARCHAR2(20),
f_name VARCHAR2(30),
CONSTRAINT f_name_not_null NOT NULL,
l_name VARCHAR2(30),
CONSTRAINT l_name_not_null NOT NULL,
mobile_no VARCHAR2(30),
CONSTRAINT mobile_no_not_null NOT NULL,
address VARCHAR2(30),
CONSTRAINT address_not_null NOT NULL,
CONSTRAINT customer_pk PRIMARY KEY(customer_id),
CONSTRAINT mobile_no_address_unique UNIQUE(mobile_no,address));
我得到以下回复:
错误报告 - SQL错误:ORA-00904 ::无效的标识符 00904. 00000 - "%s:无效的标识符"
答案 0 :(得分:1)
本声明中有两个问题
首先是引用列的不一致用法(如@a_horse_with_no_name的评论中所述)
第二个问题是列约束不应该用列定义中的逗号分隔
注释中更改的正确语句是
CREATE TABLE customers(
/*"*/customer_id/*"*/ VARCHAR2(20),
f_name VARCHAR2(30) /*,*/
CONSTRAINT f_name_not_null NOT NULL,
l_name VARCHAR2(30)/*,*/
CONSTRAINT l_name_not_null NOT NULL,
mobile_no VARCHAR2(30)/*,*/
CONSTRAINT mobile_no_not_null NOT NULL,
address VARCHAR2(30) /*,*/
CONSTRAINT address_not_null NOT NULL,
CONSTRAINT customer_pk PRIMARY KEY(customer_id),
CONSTRAINT mobile_no_address_unique UNIQUE(mobile_no,address));
有趣的是,您看到的错误与第二个问题有关,在解决之后,您将收到第一个问题的错误,该错误更具体:
ORA-00904: "CUSTOMER_ID": invalid identifier