一个触发器与插入的问题

l564400632 l564400632 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
CREATE DATABASE s;
USE s;
CREATE TABLE student
(
stu_ID VARCHAR(8)PRIMARY KEY,
stu_name VARCHAR(10)NOT NULL,
stu_sex VARCHAR(6)NOT NULL,
stu_birth DATETIME,
class VARCHAR(4)NOT NULL,
stu_email VARCHAR(40)
)
drop table student

INSERT INTO student VALUES('101','李明','女','1983-09-18','11','liming@163.com')
INSERT INTO student VALUES('102','王二','男','1984-01-01','11','wanger@163.com')
INSERT INTO student VALUES('103','李开','男','1984-01-01','11','likai@163.com')
--来检查学生的邮箱地址是否相同,如果相同,输出'inserting fail',并且回滚事务;如果不相同,则插入成功。
CREATE TRIGGER student_insert
ON student
AFTER INSERT
AS
IF exists (SELECT stu_email FROM inserted a where a.stu_email in (select stu_email from student))
BEGIN
PRINT 'Inserting fail'
ROLLBACK
END
ELSE
BEGIN
PRINT 'Inserting success'
END

DROP TRIGGER student_insert
INSERT INTO student VALUES('114','lengbing','女','1985-12-12','11','1lengbingssh@sina.com')
select * from student

插入一个不同E-mail的数据,怎么事务回滚了???求解决方法。逻辑上没错啊
...全文

相关推荐

MySQL 在触发器里中断记录的插入或更新?

下面是一种实现的方法。思路就是想办法在触发器中利用一个出错的语句来中断代码的执行。 mysql> create table t_control(id int primary key); Query OK, 0 rows affected (0.11 sec) mysql> insert into t_control values (1); Query OK, 1 row affected (0.05 sec) mysql> create table t_bluerosehero(id int primary key,col int); Query OK, 0 rows affected (0.

weixin_38559346

你真的了解触发器么 数据实时同步更新问题剖析

触发器就是我们想要的神器了。我们可以在那张动态表上新建触发器。触发器的实质就是个存储过程,只不过他调用的时间是根据所建的动态表发生该表而执行(即:Insert新数据,Update或者Delete数据)具体怎么使用触发器,今天我这里就不介绍了

weixin_38550834

Oracle触发器实验报告

表employees和department存在参照完整性约束,在表employees中插入记录(‘70’,‘999’)department_id为‘999’时,department表中还不存在department_id为‘999’的记录,所以违背了参照完整性约束,出现“Integrity constraint violation error”提示信息。 UPDATE employees SET department_id = 999 WHERE employee_id = 170; -- Integrity constraint violation error

barometerdolls

jsp 应用触发器自动插入回复记录

JSP中对触发器的调用案例,该案例详细描述的触发器的使用!

tuyn

对有insert触发器表取IDENTITY值时发现的问题

问题是这样的: T1表上有一个INSERT的触发器,在插入数据的时候,会自动往T2表里面插一条记录 这样当我在T1表上插入新的数据时,取@@IDENTITY的时候,返回的id值是T2表里面的新记录的值 赶快查了下msdn,原来@@IDENTITY还有这么多讲究: 在一条 INSERT、SELECT INTO 或大容量复制语句完成后,@@IDENTITY 中包含语句生成的最后一个标识值。如果语句未影响任何包含标识列的表,则 @@IDENTITY 返回 NULL。如果插入了多个行,生成了多个标识值,则 @@IDENTITY 将返回最后生成的标识值。如果语句触发了一个或多个触发器,该触发器又执行了生

weixin_38648309
评论 5
收藏 已收藏
分享
返回顶部
l564400632
MS-SQL Server 34,876 成员 254,635 内容