我是学习SQL的新手。当我创建这个表时,它在“(dbClassID)”的第一个括号下面有一个Asterix(*),并说“缺少右括号”
有谁知道为什么会这样做以及如何解决它?
CREATE TABLE vod_classification (
dbClassId CHAR(4) NOT NULL,
dbDescription VARCHAR2(100)
CONSTRAINT vod_classification_PK PRIMARY KEY (dbClassId)
);
答案 0 :(得分:1)
CONSTRAINT是表创建的一部分,需要以逗号分隔为其他列:
CREATE TABLE zz_classification (
dbClassId CHAR(4) NOT NULL,
dbDescription VARCHAR2(100),
CONSTRAINT vod_classification_PK PRIMARY KEY( dbClassId)
);
表包含列和约束
答案 1 :(得分:1)
你错过了,这里试试这个VARCHAR2(100),
答案 2 :(得分:0)
对于单列约束,最好将其作为列的一部分内联定义:
create table vod_classification
( dbclassid varchar2(4) not null constraint vod_classification_pk primary key
, dbdescription varchar2(100) not null constraint vod_classification_uk unique
);
我已将CHAR
列更正为标准字符串类型,即Oracle中的VARCHAR2
。
(PK列将自动not null
,但我已将其保留为完整性,以防您稍后create table as select
。)
答案 3 :(得分:0)
使用"创建"代码,您必须在定义表的每一列的行中使用逗号。除了最后一栏。您可以按如下方式阅读oracle sql语法链接:https://docs.oracle.com/cd/E11882_01/server.112/e41085/sqlqr01001.htm#SQLQR110