级联删除表时的注意事项

当使用 CREATE TABLE 或 ALTER TABLE 语句的 REFERENCES 子句的 ON DELETE CASCADE 选项时,即指定了您想从一个表级联地删除到另一个表。例如,在 stores_demo 数据库中,stock 表包含作为主键的列 stock_numcatalogitems 表中每一个表都包含作为外键的用 ON DELETE CASCADE 选项指定的列 stock_num 。当从 stock 表执行删除操作是,也会在 catalogitems 表(这两个表通过外键引用)中删除行。

要使 DELETE 操作级联到一个含有对父表的引用约束的表,您只需要拥有对 DELETE 语句中的引用的父表的 Delect 特权。

如果使用级联删除一个或多个子表引用的表执行不带 WHERE 子句的 DELETE 操作,则 GBase 8s 从该表及其任何受影响的子表删除所有的行。(这类似于 TRUNCATE 语句的作用,但是在具有子表引用它的表上 GBase 8s 不支持 TRUNCATE 操作。)

有关如何创建使用级联删除的引用约束的示例,请参阅使用 ON DELETE CASCADE 选项