sql - 未创建 SQL 表
问题描述
我正在使用甲骨文。
CREATE TABLE "CUSTOMER"
(
"CUS_ID" VARCHAR2(9),
"CUSTOMER_NAME" VARCHAR2(30),
"EMAIL" VARCHAR2(30),
"BIRTH_DATE" DATE,
"Mobile_number" NUMBER (10),
"Number_adopted" (number) (1);
CONSTRAINT "CUSTOMER_PK" PRIMARY KEY ("CUS_ID")
constraint "Email_uni" unique (EMAIL)
constraint "Mobile_uni" unique (Mobile_number)
constraint "adopted_range_ck" check ( Number_adopted >=1 and Number_adopted<=4) USING INDEX ENABLE
);
我越来越:
ORA-00902: 无效的数据类型
同样在此表中:
CREATE TABLE "ANIMAL"
( "ANIMAL_ID" VARCHAR2(9),
"ANIMAL_NAME" VARCHAR2(30),
"AGE" NUMBER(2),
"ANIMAL_TYPE" VARCHAR2(30),
"EXPENCES" NUMBER (10),
"ADOPTED" VARCHAR2(9),
CONSTRAINT "ANIMAL_PK" PRIMARY KEY ("ANIMAL_ID")
CONSTRAINT "ANIMAL_EXP_ck check" ( EXPENCES >=1 and EXPENCES<=1000)
CONSTRAINT "ANIMAL_AGE_ck check" ( AGE >=1)
USING INDEX ENABLE
);
我收到缺少右括号错误,但我无法解决这个问题。
解决方案
你有一个;
after "Number_adopted" (number) (1)
,这里的括号number
也是错误的。那么你已经忘记,
了约束之后。如果您"
在名称周围定义了一个列并且名称不是全部大写,则各个字符的大小写必须在进一步的引用中匹配,并且这些也必须包含在"
. 这就是为什么您constraint "Mobile_uni" unique (Mobile_number)
必须更改为constraint "Mobile_uni" unique ("Mobile_number")
. (但您可能首先要修改它并让列名全部大写。经验告诉我,这样的事情是未来的陷阱,因为您必须在任何查询等中准确使用该名称,它是很难注意到让一个人想知道为什么事情不起作用。)USING INDEX ENABLE
我猜那是放错地方了。
CREATE TABLE "CUSTOMER"
(
"CUS_ID" VARCHAR2(9),
"CUSTOMER_NAME" VARCHAR2(30),
"EMAIL" VARCHAR2(30),
"BIRTH_DATE" DATE,
"Mobile_number" NUMBER (10),
"Number_adopted" number (1), -- delete ( ) ; add ,
CONSTRAINT "CUSTOMER_PK" PRIMARY KEY ("CUS_ID") USING INDEX ENABLE, -- add ,
constraint "Email_uni" unique (EMAIL), -- add ,
constraint "Mobile_uni" unique ("Mobile_number"), -- add , " "
constraint "adopted_range_ck" check ( "Number_adopted" >=1 and "Number_adopted"<=4) -- move USING INDEX ENABLE add " "
);
在第二个中,您也忘记,
了约束之后并且USING INDEX ENABLE
放错了位置。您还放错了"
检查约束并CHECK
意外地将关键字包含在其中。
CREATE TABLE "ANIMAL"
( "ANIMAL_ID" VARCHAR2(9),
"ANIMAL_NAME" VARCHAR2(30),
"AGE" NUMBER(2),
"ANIMAL_TYPE" VARCHAR2(30),
"EXPENCES" NUMBER (10),
"ADOPTED" VARCHAR2(9),
CONSTRAINT "ANIMAL_PK" PRIMARY KEY ("ANIMAL_ID") USING INDEX ENABLE, -- add ,
CONSTRAINT "ANIMAL_EXP_ck" check ( EXPENCES >=1 and EXPENCES<=1000), -- add , move "
CONSTRAINT "ANIMAL_AGE_ck" check ( AGE >=1) -- move "
-- move USING INDEX ENABLE
);
推荐阅读
- prometheus - 在普罗米修斯中,如果要绘制一个图形,该图形具有特定命名空间的 cpu 使用内存使用量(以字节为单位),要编写什么查询?
- dataframe - 在 pyspark 中验证和更改不同的日期格式
- java - 资源泄漏和输出文件未写入
- swift - SwiftUI:NavigationLink 的非自愿导航
- c# - 无法停止 IIS Express 要求在我的本地 Silverlight 应用程序上对我进行身份验证
- node.js - 使用对象数组创建猫鼬模式
- oauth-2.0 - 通过 OAuth 进行的 Google 助理帐户关联不会从扬声器转移到手机
- python - 优化功能(针对 SARIMA 模型),加速 Python
- javascript - 如何在 AmCharts4 中添加要导出的外部容器(标题)?
- azure - Azure 基础架构存档和还原