创建触发器 trig_p,使得插入 KC 表中的一条记录时,默认单位为“台”。SQL语句
时间: 2024-02-19 14:57:39 浏览: 194
创建触发器的 SQL 语句如下:
```sql
CREATE TRIGGER trig_p
BEFORE INSERT ON KC
FOR EACH ROW
BEGIN
IF NEW.单位 IS NULL THEN
SET NEW.单位 = '台';
END IF;
END;
```
这个触发器会在插入 KC 表中的一条记录之前被触发,对于每一条记录都会执行一次。在触发器中,我们检查新插入的记录中的单位是否为 NULL,如果是,则将其默认设置为“台”。
相关问题
创建触发器 trig_p,使得插入 KC 表中的一条记录时,默认单位为“台”。
好的,以下是创建触发器 trig_p 的 SQL 语句,可以实现您的需求:
```sql
CREATE TRIGGER trig_p
BEFORE INSERT ON KC
FOR EACH ROW
SET NEW.单位 = IFNULL(NEW.单位, "台");
```
这个触发器会在每次向 KC 表中插入一条新记录之前被触发。它会检查该记录的单位是否为空,如果为空,则将单位设置为默认值“台”。这样,每次插入记录时,如果没有指定单位,就会自动使用默认值。
编写一个触发器trig_stu_score_delete,在学生表删除一条记录时则同时删除成绩表中相应的信息。
您好,以下是MySQL数据库中创建一个名为trig_stu_score_delete的触发器,实现在学生表删除一条记录时同时删除成绩表中相应的信息。
```sql
CREATE TRIGGER trig_stu_score_delete
AFTER DELETE ON student
FOR EACH ROW
BEGIN
DELETE FROM score WHERE student_id = OLD.student_id;
END;
```
解释:
- CREATE TRIGGER:创建一个触发器。
- trig_stu_score_delete:触发器的名称。
- AFTER DELETE ON student:当学生表中删除一条记录时触发。
- FOR EACH ROW:对于每一行删除。
- BEGIN...END:触发器的执行部分。
- DELETE FROM score:从成绩表中删除数据。
- WHERE student_id = OLD.student_id:删除与被删除学生ID相同的成绩记录。
注意:
- 在创建触发器时,需要确保MySQL用户具有足够的权限来创建触发器。
- 在删除学生记录时,将会连带删除与该学生相关的成绩记录,请谨慎操作。
阅读全文