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

错误是在 oracle 中使用的。

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

级联 *

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

此查询在 mysql 上有效,但在 oracle 中无效?请任何人告诉我它在oracle中是如何工作的。

4

1 回答 1

2

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

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

于 2012-06-24T05:10:06.600 回答