数据库中tb_student 和tb_major两张表要 级联应该怎么做,给出代码
时间: 2024-05-13 20:16:40 浏览: 131
级联更新(CASCADE)和级联删除(CASCADE)是常用的数据库操作之一,可以在两个或多个表之间建立关系,当一个表中的数据被更新或删除时,相关联的表中的数据也会被更新或删除。
下面是一个示例代码,实现了tb_student和tb_major两张表的级联更新和级联删除。
创建tb_major表:
```sql
CREATE TABLE tb_major (
id INT PRIMARY KEY,
name VARCHAR(50)
);
```
创建tb_student表,并在其中添加外键约束:
```sql
CREATE TABLE tb_student (
id INT PRIMARY KEY,
name VARCHAR(50),
major_id INT,
FOREIGN KEY (major_id) REFERENCES tb_major(id) ON UPDATE CASCADE ON DELETE CASCADE
);
```
在tb_student表中,major_id列是一个外键,它引用了tb_major表中的id列。ON UPDATE CASCADE和ON DELETE CASCADE选项指定了级联更新和级联删除操作。
现在,如果我们执行以下操作:
```sql
INSERT INTO tb_major (id, name) VALUES (1, '计算机科学与技术');
INSERT INTO tb_major (id, name) VALUES (2, '软件工程');
INSERT INTO tb_student (id, name, major_id) VALUES (1, '张三', 1);
```
然后,我们可以通过以下语句更新tb_major表中的记录,并测试级联更新操作是否正常工作:
```sql
UPDATE tb_major SET id = 3 WHERE id = 1;
```
此时,tb_student表中的major_id列的值也被更新为3。
接下来,我们可以通过以下语句删除tb_major表中的记录,并测试级联删除操作是否正常工作:
```sql
DELETE FROM tb_major WHERE id = 3;
```
此时,tb_student表中相关联的记录也被删除。
以上就是一个简单的级联更新和删除的示例代码,希望能帮助到你。
阅读全文