如何在oracle中使用cascade

时间:2012-06-24 02:25:37

标签: sql oracle ora-00907

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
);

错误在oracle中使用。

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

级联                                                                       *

  

第9行的错误:   ORA-00907:缺少右括号

这个查询正在使用mysql,但在oracle中无法正常工作?请有人告诉我它在oracle中是如何工作的。

1 个答案:

答案 0 :(得分:2)

Oracle不支持主键的级联更新。主键应该是唯一的和不可变的,所以它不应该需要改变。由于您永远不应该更新主键,因此不需要级联这些更新。

通常,您可能还应该使用VARCHAR2数据类型而不是VARCHAR。目前,这些数据类型是相同的,但Oracle可能会在将来更改VARCHAR类型的语义,以使空字符串与NULL区别对待。假设您不希望您的应用程序在这些语义发生变化时可能会中断,那么使用VARCHAR2会更安全。