ORACLE on delete casecade
时间: 2023-09-18 16:08:04 浏览: 49
在Oracle数据库中,ON DELETE CASCADE是一种外键约束的类型。当我们在一个表上定义了一个外键,并指定了CASCADE选项时,如果主表中的一行被删除,则相关的从表中的所有行也将被删除。这就是所谓的级联删除。
例如,我们有两个表,一个是主表“orders”,另一个是从表“order_items”,其中“order_items”表的外键指向“orders”表的主键。
如果我们在外键约束中指定了ON DELETE CASCADE选项,那么当我们从“orders”表中删除一行时,相关的“order_items”表中的所有行也将被删除。
下面是一个示例:
```
CREATE TABLE orders (
order_id INT PRIMARY KEY,
customer_name VARCHAR(50)
);
CREATE TABLE order_items (
item_id INT PRIMARY KEY,
order_id INT,
item_name VARCHAR(50),
FOREIGN KEY (order_id) REFERENCES orders(order_id) ON DELETE CASCADE
);
```
在上面的示例中,我们在“order_items”表上定义了一个外键约束,并指定了ON DELETE CASCADE选项。这意味着,如果我们从“orders”表中删除一行,相关的“order_items”表中的所有行也将被删除。
相关问题
create table zhuanyun( zyno varchar(20) not null primary key, ydno varchar(20) not null, ckno varchar(20) not null, ygno varchar(20) not null, qstime varchar(20), rktime varchar(20), foreign key (ckno) references cangku(ckno), foreign key (ygno) references yuangong(ygno), foreign key (ydno) references yundan(ydno) on update casecade );
这是一条SQL语句,用于创建一个名为zhuanyun的表,该表包含以下字段:
- zyno:转运编号,为varchar(20)类型,非空且为主键。
- ydno:运单编号,为varchar(20)类型,非空。
- ckno:仓库编号,为varchar(20)类型,非空,作为外键关联到cangku表的ckno字段。
- ygno:员工编号,为varchar(20)类型,非空,作为外键关联到yuangong表的ygno字段。
- qstime:起始时间,为varchar(20)类型,可空。
- rktime:入库时间,为varchar(20)类型,可空。
- 外键约束:ydno是外键,关联到yundan表的ydno字段,当yundan表中的ydno字段更新时,zhuanyun表中的ydno字段也会更新,级联更新。
下面是该SQL语句的具体代码:
```
create table zhuanyun(
zyno varchar(20) not null primary key,
ydno varchar(20) not null,
ckno varchar(20) not null,
ygno varchar(20) not null,
qstime varchar(20),
rktime varchar(20),
foreign key (ckno) references cangku(ckno),
foreign key (ygno) references yuangong(ygno),
foreign key (ydno) references yundan(ydno) on update cascade
);
```