oracle中如何使用级联
Posted
技术标签:
【中文标题】oracle中如何使用级联【英文标题】:how to use cascade in oracle 【发布时间】:2012-06-24 02:25:37 【问题描述】: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 中是如何工作的。
【问题讨论】:
对于初学者来说,供应商(MySQL、Oracle、SQL Server 等)之间的语法并不相同。 “SQL”中的“S”代表“结构化”,遗憾的是不是“标准化”。尽管 ANSI 正在努力改进这一点,但支持和性能并不总是理想的。 【参考方案1】:Oracle 不支持主键的级联更新。主键应该是唯一且不可变的,因此它永远不需要更改。由于您永远不应该更新主键,因此不需要级联这些更新。
一般来说,您可能还应该使用VARCHAR2
数据类型而不是VARCHAR
。目前,这些数据类型是相同的,但 Oracle 将来可能会更改 VARCHAR
类型的语义,以使空字符串的处理方式与 NULL
不同。假设您不希望您的应用程序在将来这些语义发生变化时可能会中断,那么使用VARCHAR2
会更安全。
【讨论】:
以上是关于oracle中如何使用级联的主要内容,如果未能解决你的问题,请参考以下文章