日期:2014-05-18  浏览次数:20358 次

求助: 关于SQL 回滚事务的
我想在一张表中插入新数据.当发现新数据与原数据有相同时.我需要把刚刚插入的数据全部作废 
我目前是新建一张临时表 做为中转 验证后再写入表中 
我知道 事务可以实现.
但是出现问题 当我锁定行时却出现了别的连接不能读取没有锁定的行
比如 
select * from 计划表 where 工号='0111-01' 要锁定 工号是 0111-01 的行 的同时别人能读取和操作 工号是 0111-01 的行

要实现怎么做? 
我在程序语言中已经 有 开始事务 和结束事务了

------解决方案--------------------
用不着事务,直接用 INSTEAD OF 触发器.
在插入时检测,如果有相同的,则不插入,否则插入.

参考:
http://blog.csdn.net/qianjin036a/article/details/6136588