创建一个DDL触发器,当在studentmis数据库中修改表时,会显示提示信息:有一个表被修改。修改一个表:chengji(xuehao char(20),chengji float),验证触发器的执行情况。
时间: 2024-12-12 22:28:12 浏览: 3
mysql数据库的创建、数据表的创建、修改
5星 · 资源好评率100%
创建一个DDL触发器(Data Definition Language Trigger),可以在数据库操作如表结构更改时自动执行预设的操作。在SQL中,你可以使用CREATE TRIGGER语句来定义这样的触发器。假设你想要在`studentmis`数据库中,每当对`chengji`表进行修改时,显示提示消息,可以按照以下步骤编写:
```sql
CREATE DATABASE TRIGGER show_table_change
AFTER UPDATE ON studentmis.chengji
FOR EACH ROW
BEGIN
DECLARE msg VARCHAR(255);
SET msg = '有一个表被修改: chengji表';
INSERT INTO trigger_log (message) VALUES (msg);
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = msg;
END;
```
这个触发器会在每次更新`chengji`表中的行之后运行,将提示信息存储到`trigger_log`表中(如果还没有,需要先创建该表)。`SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = msg;`这一部分用于强制中断当前事务并返回错误,以便能看到提示信息。
为了验证触发器的执行情况,你可以手动修改`chengji`表的内容,然后检查`trigger_log`表是否有预期的消息记录。如果看到提示,说明触发器已经成功启用。
阅读全文