当使用 CREATE TABLE 或 ALTER TABLE 语句的 REFERENCES 子句的 ON DELETE CASCADE 选项时,即指定了您想从一个表级联地删除到另一个表。例如,在 stores_demo 数据库中,stock 表包含作为主键的列 stock_num。catalog 和 items 表中每一个表都包含作为外键的用 ON DELETE CASCADE 选项指定的列 stock_num 。当从 stock 表执行删除操作是,也会在 catalog 和 items 表(这两个表通过外键引用)中删除行。
要使 DELETE 操作级联到一个含有对父表的引用约束的表,您只需要拥有对 DELETE 语句中的引用的父表的 Delect 特权。
如果使用级联删除一个或多个子表引用的表执行不带 WHERE 子句的 DELETE 操作,则 GBase 8s 从该表及其任何受影响的子表删除所有的行。(这类似于 TRUNCATE 语句的作用,但是在具有子表引用它的表上 GBase 8s 不支持 TRUNCATE 操作。)
有关如何创建使用级联删除的引用约束的示例,请参阅使用 ON DELETE CASCADE 选项。