.修改student表,添加一个字段班号,数据类型为varchar(10),创建一个班级表class(班号,所在系,专业,人数),数据类型自定,并录入一定的数据。利用触发器实现:向student表添加一行数据,班级表中对应班级的人数加一,向student表中删除一行数据,班级表中对应班级的人数减一。
时间: 2024-03-02 07:51:07 浏览: 60
好的,这是一个关于数据库的问题。首先,我们需要先创建两个表:student表和class表。
student表结构如下:
```
CREATE TABLE student (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50),
gender VARCHAR(10),
age INT,
class_id VARCHAR(10)
);
```
class表结构如下:
```
CREATE TABLE class (
id INT AUTO_INCREMENT PRIMARY KEY,
class_id VARCHAR(10),
department VARCHAR(50),
major VARCHAR(50),
num_of_students INT
);
```
接下来,我们需要创建触发器,实现添加和删除数据时对应班级人数的自动更新。
添加数据的触发器:
```
CREATE TRIGGER add_student
AFTER INSERT ON student
FOR EACH ROW
BEGIN
UPDATE class
SET num_of_students = num_of_students + 1
WHERE class_id = NEW.class_id;
END
```
删除数据的触发器:
```
CREATE TRIGGER delete_student
AFTER DELETE ON student
FOR EACH ROW
BEGIN
UPDATE class
SET num_of_students = num_of_students - 1
WHERE class_id = OLD.class_id;
END
```
这样,当我们向student表中添加或删除一行数据时,对应班级的人数会自动更新。
注意,这里的触发器是针对同一数据库中的student和class表的,如果有多个数据库,需要在对应的数据库中分别创建触发器。
阅读全文