edge://flags/#unsafely-treat-insecure-origin-as-
修改的情况
DROP TRIGGER IF EXISTS a1; //如果有这个触发器就删除当前触发器 CREATE TRIGGER a1 //设置触发器的名字 AFTER INSERT ON namestudent //设置是哪个表使用的触发器比如这个表的名字是namestudent 和设置是insert 还是update 才触发 FOR EACH ROW //表示每插入一行都会触发一次 BEGIN //开始 INSERT INTO log (name, date, text) VALUES (NEW.name, NOW(), "插入操作"); //如果name表被插入之后触发给log日志表也进行一个插入操作 new.name 获取namestudent表中的name属性 (也就是触发器的表中name属性) NOW() 获取系统时间 最后一个是自定义 END; //结束
除了FOR EACH ROW 还有 AFTER INSERT 和 BEFORE INSERT用于指定触发器的执行时间,
AFTER INSERT 表示在数据被插入后执行触发器
BEFORE INSERT 则表示在数据被插入之前执行触发器。此外,还有更多用于触发器的操作指令,
如DELETE、UPDATE、AFTER DELETE和BEFORE UPDATE等。
删除的情况
DROP TRIGGER IF EXISTS a1; CREATE TRIGGER a1 BEFORE DELETE ON name // 在删除之前触发 FOR EACH ROW BEGIN INSERT INTO log (name, date, text,user) VALUES (OLD.name, NOW(), "删除操作",SYSTEM_USER()); END;
1. CURRENT_TIMESTAMP():获取当前时间戳 2. DATABASE():获取当前操作的数据库名 3. CONNECTION_ID():获取当前连接的ID 4. LAST_INSERT_ID():获取上一条插入语句生成的自增ID 5. VERSION():获取当前MySQL版本号 6. SLEEP():使当前连接休眠一段时间 7. NOW():获取当前日期时间 8. RAND():生成一个随机数 9. SYSTEM_USER():获取当前操作系统用户 10. FOUND_ROWS():获取上一条SELECT语句返回的记录数 4. LAST_INSERT_ID():获取最后一次插入操作生成的自增ID值
添加修改删除代码
DROP TRIGGER IF EXISTS insert_table_article; CREATE TRIGGER insert_table_article AFTER INSERT ON article FOR EACH ROW BEGIN INSERT INTO table_log (user, operate, text,`table`,date) VALUES (USER(),"插入一篇文章",NEW.title,"文章", NOW()); END; DROP TRIGGER IF EXISTS delete_table_article; CREATE TRIGGER delete_table_article BEFORE DELETE ON article FOR EACH ROW BEGIN INSERT INTO table_log (user, operate, text,`table`,date) VALUES (USER(),"删除一篇文章",OLD.title,"文章", NOW()); END; DROP TRIGGER IF EXISTS update_table_article; CREATE TRIGGER update_table_article BEFORE UPDATE ON article FOR EACH ROW BEGIN INSERT INTO table_log (user, operate, text,`table`,date) VALUES (USER(),"修改一篇文章",CONCAT( OLD.title,' 状态:',OLD.state),"文章", NOW()); END;