求解oracle中的update cascade具体的用法是如何样的
求解oracle中的update cascade具体的用法是怎么样的
oracle中的update cascade具体的用法是怎么样的
------解决方案--------------------
oracle中没有update cascade(级联更新),只有 delete cascade(级联删除)
因此只给你举一个级联删除的例子,在支持级联更新的数据库系统里面同理。
oracle中的update cascade具体的用法是怎么样的
------解决方案--------------------
oracle中没有update cascade(级联更新),只有 delete cascade(级联删除)
因此只给你举一个级联删除的例子,在支持级联更新的数据库系统里面同理。
- SQL code
[SYS@myoracle] SQL>CREATE TABLE t1(pk INT); 表已创建。 [SYS@myoracle] SQL>CREATE TABLE t2(pk INT); 表已创建。 [SYS@myoracle] SQL>ALTER TABLE t1 ADD CONSTRAINT pk_t1 PRIMARY KEY(pk); 表已更改。 [SYS@myoracle] SQL>ALTER TABLE t2 ADD CONSTRAINT fk_t2 FOREIGN KEY(pk) REFERENCES t1(pk) ON DELETE CASCADE; 表已更改。 [SYS@myoracle] SQL>INSERT INTO t1 VALUES(1); 已创建 1 行。 [SYS@myoracle] SQL>INSERT INTO t1 VALUES(2); 已创建 1 行。 [SYS@myoracle] SQL>INSERT INTO t2 VALUES(1); 已创建 1 行。 [SYS@myoracle] SQL>SELECT * FROM t1; PK ---------- 1 2 [SYS@myoracle] SQL>SELECT * FROM t2; PK ---------- 1 [SYS@myoracle] SQL>DELETE FROM t1 WHERE pk=1; 已删除 1 行。 [SYS@myoracle] SQL>DROP TABLE t2; 表已删除。 [SYS@myoracle] SQL>DROP TABLE t1; 表已删除。 [SYS@myoracle] SQL> [SYS@myoracle] SQL>CREATE TABLE t1(pk INT); 表已创建。 [SYS@myoracle] SQL>CREATE TABLE t2(pk INT); 表已创建。 [SYS@myoracle] SQL>ALTER TABLE t1 ADD CONSTRAINT pk_t1 PRIMARY KEY(pk); 表已更改。 [SYS@myoracle] SQL>ALTER TABLE t2 ADD CONSTRAINT fk_t2 FOREIGN KEY(pk) REFERENCES t1(pk); 表已更改。 [SYS@myoracle] SQL>INSERT INTO t1 VALUES(1); 已创建 1 行。 [SYS@myoracle] SQL>INSERT INTO t1 VALUES(2); 已创建 1 行。 [SYS@myoracle] SQL>INSERT INTO t2 VALUES(1); 已创建 1 行。 [SYS@myoracle] SQL>SELECT * FROM t1; PK ---------- 1 2 [SYS@myoracle] SQL>SELECT * FROM t2; PK ---------- 1 [SYS@myoracle] SQL>DELETE FROM t1 WHERE pk=1; DELETE FROM t1 WHERE pk=1 * 第 1 行出现错误: ORA-02292: 违反完整约束条件 (SYS.FK_T2) - 已找到子记录 [SYS@myoracle] SQL>DROP TABLE t2; 表已删除。 [SYS@myoracle] SQL>DROP TABLE t1; 表已删除。 [SYS@myoracle] SQL>