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
级联 *
ERROR at line 9: ORA-00907: missing right parenthesis
这个查询在 mysql 上可以工作,但在 oracle 上却不起作用?请任何人告诉我它在 Oracle 中是如何工作的。
最佳答案
Oracle不支持主键的级联更新。主键应该是唯一的且不可变的,因此不需要更改。由于您永远不应该更新主键,因此不需要级联这些更新。
一般来说,您可能还应该使用 VARCHAR2
数据类型而不是 VARCHAR
。目前,这些数据类型是相同的,但 Oracle 将来可能会更改 VARCHAR
类型的语义,导致空字符串与 NULL
的处理方式有所不同。假设您不希望您的应用程序在将来这些语义发生变化时可能出现故障,那么使用 VARCHAR2
会更安全。
关于sql - oracle中如何使用级联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11174533/