我的CREATE TABLE语句为何触发ORA-00905: 缺失关键字错误?
解决ORA-00905: 缺失关键字错误的问题
你的CREATE TABLE语句触发错误的核心原因是最后一个外键约束qualifk的定义不完整。Oracle的外键约束要求必须明确指定要引用的父表和对应列,你只写了FOREIGN KEY(QualificationId),却没有跟上REFERENCES子句来指明关联的表和列,数据库解析时找不到必要的关键字,就抛出了ORA-00905。
另外给你个小提醒:在Oracle中,推荐使用VARCHAR2代替VARCHAR,虽然VARCHAR也能正常运行,但VARCHAR2是Oracle官方标准的变长字符串类型,语义更清晰,避免潜在的兼容性问题。
修正后的SQL语句示例(假设你的父表名为qualifications,你可以根据实际情况调整):
CREATE TABLE CUSTOMERS ( CustId varchar2(10) not null, custname varchar2(15), Ic varchar2(15), AttributeName varchar2(10), Birthdate varchar2(10), Birthstate varchar2(10), Race varchar2(10), Gender varchar2(10), No_Of_sibling varchar2(10), Status varchar2(10), AddID varchar2(10), QualificationId varchar2(10), constraint custpk PRIMARY KEY(CustId), constraint addfk FOREIGN KEY(AddID) references address(AddID), constraint qualfk FOREIGN KEY(QualificationId) references qualifications(QualificationId) );
内容的提问来源于stack exchange,提问作者farhan
相关产品推荐
相关产品推荐

