1
create table loginDetails(
 userId   varchar(30),
 cellPhoneNo    varchar(10),    
 displayName  varchar(20),
 password   varchar(20),
 secretQuestion varchar(50),
 secretAnswer varchar(50),
 joiningDate    date,
 foreign key(userId) references userDetails(userId) on delete cascade on update cascade
);

the error is come on use in oracle.

foreign key(userId) references userDetails(userId) on delete cascade on update

cascade *

ERROR at line 9: ORA-00907: missing right parenthesis

This query is working on mysql but in oracle is not working? please anyone tell me how it work in oracle.

4

1 に答える 1

2

Oracle は、主キーのカスケード更新をサポートしていません。主キーは一意かつ不変でなければならないため、変更する必要はありません。主キーを更新してはならないため、これらの更新をカスケードする必要はありません。

VARCHAR2一般に、ではなくデータ型も使用する必要がありますVARCHAR。現在、これらのデータ型は同一ですが、Oracle はVARCHAR将来、型のセマンティクスを変更して、空の文字列を とは異なる方法で処理する可能性がありますNULL。将来、これらのセマンティクスが変更されたときにアプリケーションが壊れる可能性を望まない場合は、 を使用する方が安全VARCHAR2です。

于 2012-06-24T05:10:06.600 に答える