示例 1:行级 INSERT 触发器

以下触发器是一个行级 INSERT 触发器的示例。它检查为新雇员输入的出生日期是否合理:CREATE TRIGGER check_birth_date

AFTER INSERT ON Employees

REFERENCING NEW AS new_employee

FOR EACH ROW

BEGIN

DECLARE err_user_error EXCEPTION

FOR SQLSTATE '99999';

IF new_employee.BirthDate > 'June 6, 2001' THEN

SIGNAL err_user_error;

END IF;

END;

注意

在 SQL Anywhere 示例数据库中,可能已经有一个名为 check_birth_date 的触发器。如果是这样,当尝试运行上述 SQL 语句时,将返回一个错误,指示触发器定义与现有触发器冲突。

此触发器在有任何行插入 Employees 表之后触发。它会检测并禁止对应出生日期晚于 2001 年 6 月 6 日的任何新行。

短语 REFERENCING NEW AS new_employee 使用别名 new_employee 以允许触发器代码中的语句引用新行中的数据。

发出错误信号将导致撤消触发语句以及之前所有的触发器操作结果。

对于将许多行添加到 Employees 表的 INSERT 语句,check_birth_date 触发器为每一新行触发一次。如果该触发器对任何行触发失败,则 INSERT 语句的所有结果都回退。

您可以通过将示例的第二行更改为以下内容,指定触发器在插入行之前而非插入行之后触发

BEFORE INSERT ON Employees

REFERENCING NEW 子句引用该行的插入值;它与触发器的计时(之前或之后)无关。

有时,使用声明的参照完整性或 CHECK 约束(而不是触发器)实施约束会更容易。例如,使用列检查约束来实现上例会更简洁、更高效:

CHECK (@col <= 'June 6, 2001')

my sql 触发器_在表中创建触发器 (SQL)相关推荐

  1. mysql添加序列触发器_在Oracle中创建自增序列之触发器

    下面是对Oracle表中一个字段建立自增序列的例子与说明,希望对大家有所帮助. 下面是对Oracle表中一个字段建立自增序列的例子与说明,,希望对大家有所帮助. /*================= ...

  2. SQL 向:在 mysql 中创建《SQL 经典实例》中的两个主要在用的表 emp 和 dept 供大家使用

    创建 emp 表 CREATE TABLE emp (EMPNO int NOT NULL,ENAME VARCHAR (20) NOT NULL,JOB VARCHAR (20) NOT NULL, ...

  3. java触发器如何创建表_在java 中执行触发器代码、创表语句

    由于程序的需要,在SQLServer 中创建触发器及建表,碰到了在java 代码中执行创建触发器及表. /**建立中间表*/ public static final String createMidd ...

  4. mysql中以下正确的sql是_总结MySQL中SQL语法的使用

    --where子句操作符: where子句操作符 = 等于 <> 不等于(标准语法) != 不等于(非标准语法,可移植性差) < 小于 <= 小于等于 > 大于 > ...

  5. oracle中创建触发器

    从csdn上面看到一个如何创建触发器的问题,感觉自己很有必要保存学习,特写下来: 条件: 现有A.B两张表 A: 工号 姓名 密码 性别 年龄 ... B: 工号 姓名 密码 当对A表中的" ...

  6. SQLSERVER数据库、表的创建及SQL语句命令

    SQLSERVER数据库.表的创建及SQL语句命令 备份,还原,创建,删除,查询,修改 ** 数据库定义及操作命令:** 按照数据结构来组织.存储和管理数据的仓库.由表.关系以及操作对象组成,把数据存 ...

  7. @sql 单元测试_简单单词中使用tSQLt进行的常规SQL单元测试

    @sql 单元测试 This article is about basics of conventional SQL unit testing concepts and its implementat ...

  8. python怎么导入sql数据库,##使用python将excel表中数据导入sql server数据库

    如何用python将excel数据导入到postgresql数据库中 把excel表格另存为csv文件 python将exce文件含有多个sheet同时l导入sqlserver数据库 需要使用xlrd ...

  9. 用sql语句对数据库表中的数据进行增删改

    如何使用sql语句对mysql数据库中表的数据进行增删改 这里新创了一个school数据库,在下面创建一张名为student表,创建student表的sql语句代码如下: #使用school数据库 u ...

最新文章

  1. 2022-2028年中国二次元行业深度调研及投资前景预测报告
  2. Centos7常用命令
  3. 这才是Matlab的正确打开方式!——Matlab矩阵、绘图、函数计算与数据读取
  4. [RN] 全国城市列表选择 (包含定位城市、热门城市、全国城市)
  5. Button控件的基本使用(初识封装、减少代码冗余性、代码优化)
  6. java界面 文件选择器_掌握java技术 必备java工具应用知识
  7. 输入一个正整数求所有素数因子_一起来聊聊素数的两个性质
  8. Java Object类详解
  9. C#LeetCode刷题-图
  10. 公安部身份证阅读器模块SAM通讯协议
  11. 美团外卖批量投放智能安全头盔:骑手可语音处理订单
  12. Python卸载报错:No Python 3.8 installation was detected
  13. python和c的语法区别_python和c语言语法有什么区别?
  14. Linux替换压缩包下的文件,Linux下rar及zip压缩包中批量替换某文件脚本
  15. 微信 网页授权/第三方平台账户绑定/微信openid获取
  16. 歌唱比赛报名php源码,2021东方音乐挑战赛正式官宣发布 歌唱比赛音乐选秀节目全球报名招募...
  17. python实现连环阵
  18. 使用print.js进行分页打印
  19. linux 文件夹同步备份,SyncToy实现本地文件夹同步备份
  20. 聚美优品店庆nbsp;从天堂到地狱

热门文章

  1. 图片的格式怎么转换?这几种转换格式的方法请收好
  2. oracle创建用户密码和权限
  3. 命令怎么创建oracle用户,Oracle 如何使用命令行创建用户
  4. ID3决策树算法及其Python实现
  5. Ubuntu分区方案——如何科学的规划
  6. Oracle数据库还原命令
  7. 服装供应链的最优方法
  8. traceroute 命令示例
  9. cf反恐穿越前线java_CF穿越前线生化危机又一场僵尸浩劫
  10. 【管理篇 / 升级】❀ 08. 下载 7.0 版本固件 ❀ FortiGate 防火墙