DELIMITER // CREATE TRIGGER students_delete BEFORE DELETE ON students FOR EACH ROW BEGIN IF old.sid IN (SELECT sid FROM selected ) THEN signal SQLSTATE '50001' SET message_text ="该学号有选课,禁止删除!"; END IF; DELIMITER ;
时间: 2024-03-06 21:46:50 浏览: 93
学生选课.sql
根据您提供的 SQL 语句,这是一个在 MySQL 数据库中创建触发器的语句。这个触发器会在 `students` 表中有数据被删除之前触发,并检查该学生的学号是否在 `selected` 表中出现过,如果出现过,则会抛出一个异常信号,并提示该学号有选课,禁止删除。
不过,您的 SQL 语句中缺少了设置 `DELIMITER` 的语句,因此执行会出错。正确的语句应该是:
```
DELIMITER //
CREATE TRIGGER students_delete BEFORE DELETE ON students FOR EACH ROW
BEGIN
IF OLD.sid IN (SELECT sid FROM selected) THEN
SIGNAL SQLSTATE '50001' SET MESSAGE_TEXT = "该学号有选课,禁止删除!";
END IF;
END//
DELIMITER ;
```
这样设置之后,执行该语句即可在 MySQL 数据库中成功创建触发器。
阅读全文