MySQL 触发器可以用 BEGIN…END 构造执行多个语句。在 BEGIN 块中,我们还可以使用存储过程允许的其他语法,例如条件语句和循环。为了说明这个概念,我们用下面的 BEFORE INSERT TRIGGER 例子来说明,其中包含 IF 条件语句 - 示例 mysql> Create Trigger before_inser_studentage BEFORE INSERT ON student_age FOR EACH ROW BEGIN IF NEW.age < 0 THEN SET NEW.age = 0; ELSEIF NEW.age > 100 THEN SET NEW.age = 100; END IF; END // 查询正常,0 行受影响 (0.30 秒)
在这种情况下,MySQL 将按创建顺序调用触发器。但是我们可以利用以下选项来更改顺序 - FOLLOWS 选项此选项允许新触发器在现有触发器之后激活。语法: FOR EACH ROW FOLLOWS trigger_name PRECEDES 选项此选项允许新触发器在现有触发器之前激活。语法: FOR EACH ROW PRECEDES trigger_name
为了以特定方式(升序或降序)从 MySQL 表中获取记录集的记录,我们需要结合使用 ORDER BY 子句和 ASC 或 DESC 关键字。如果我们不使用上述任何关键字,则 MySQL 默认以升序返回记录。ORDER BY 子句根据特定字段(升序或降序)返回结果集,我们也将使用 ORDER BY 子句。假设我们要对下表的行进行排序。mysql> Select * from Student;+--------+--------+--------+ | Name | ... 阅读更多