我检查了其他类似的问题。关于重复逗号,命令错误但无法在我的错误中找到任何错误。我还搜索了创建表的示例以与我的进行比较,但未找到任何区别:(。
以下是CREATE表语句:
CREATE TABLE DRIVER(L# VARCHAR(15) NOT NULL
, DNAME VARCHAR(75) NOT NULL
, STATUS VARCHAR(50) NOT NULL
, NRIC VARCHAR (15) NOT NULL
, PRIMARY KEY(L#)
, CANDIDATE KEY(NRIC)
);
任何人都可以帮我指出我无法看到或遗漏的东西,谢谢(:
答案 0 :(得分:2)
您无法在Oracle中指定CANDIDATE KEY
。正确的方法是在候选密钥上创建UNIQUE CONSTRAINT
。
喜欢这样。
CREATE TABLE DRIVER(
L# VARCHAR(15) NOT NULL,
DNAME VARCHAR(75) NOT NULL,
STATUS VARCHAR(50) NOT NULL,
NRIC VARCHAR (15) NOT NULL,
PRIMARY KEY(L#),
CONSTRAINT UK_NRIC UNIQUE (NRIC)
);
答案 1 :(得分:0)
ORA-00907几乎总是表示语法错误。当解析器找到一个不是关键字的单词时,它会发生关键字或右手括号以关闭当前语句(因此Missing Right Parenthesis
)。虽然有时我们可以拥有一个无与伦比的左手支架:一个体面的文本编辑器可以帮助追踪它。
在你的情况下,闯入的词是CANDIDATE
。对于初学者来说,语法错误可能很棘手。我建议你熟悉Oracle文档:它是在线的,完整的和免费的,并且有很多例子。 Check it out。 list of reserved words可能对您有所帮助,因为CANDIDATE
不在其中,这是一个很大的线索。
答案 2 :(得分:-1)
如果要在名称中使用奇数字符,请将其包装在方括号中。 []