Select … for update语句是我们经常使用手工加锁语句。通常情况下,select语句是不会对数据加锁,妨碍影响其他的DML和DDL操作。同时,在多版本一致读机制的支持下,select语句也不会被其他类型语句所阻碍。 借助for update子句,我们可以在应用程序的层面手工实现数据加锁 ...
分类:
其他好文 时间:
2016-10-14 17:54:09
阅读次数:
122
今天在SQL数据库操作时需要将一张表中的数据Update到另一张表中去, 可是用我以往的写法确怎么也不能成功.代码如下: 上面的写法似乎是在Oracle的环境下可以实现的, (具体没有验证过) 反正在SQL Server中是无法执行. 上网找了一下终于找到了解决方法, 如下: Oralce和DB2都 ...
分类:
数据库 时间:
2016-10-03 12:38:24
阅读次数:
202
一. update 和 merge的区别 首先在执行更新操作的时候,两者都必须要有id update是直接执行update 语句,执行后状态为持久化状态 而merge则不一样: 1. 如果session中有与之对应的对象,也就是主键相同,则会把要保存的obj的值copy给session中的对象,然后 ...
分类:
Web程序 时间:
2016-09-24 16:12:14
阅读次数:
210
--触发器-- :old 代表以前的列值-- :new 更改以后的列值 --这两个变量只能在 for each row存在的时候才能使用--update语句有:old :new--insert只有:new--delete只有:old --创建一个teacher_log (只要有人操作这个teache ...
分类:
数据库 时间:
2016-09-20 21:11:24
阅读次数:
212
Update语句 Update 表名 set 字段1=值1, 字段2=值2 where 条件 练习: 把用户名带 ‘小’的人的密码设置为123456 效果 ...
分类:
数据库 时间:
2016-09-20 11:58:18
阅读次数:
167
update两表关联的写法包括字查询 1.update t2 set parentid=(select ownerid from t1 where t1.id=t2.id); 2. update tb_client_win_lost_report a set a.rolling_code_id=2 ...
分类:
数据库 时间:
2016-09-18 11:43:08
阅读次数:
196
merge的作用是:新new一个对象,如果该对象设置了ID,则这个对象就当作游离态处理: 当ID在数据库中不能找到时,用update的话肯定会报异常,然而用merge的话,就会insert。 当ID在数据库中能找到的时候,update与merge的执行效果都是更新数据,发出update语句; 如果没 ...
分类:
Web程序 时间:
2016-09-13 18:52:56
阅读次数:
144
Oracle使用了一个复杂的自平衡B-tree结构。通常,通过索引查询数据比全表扫描要快。当 Oracle找出执行查询和Update语句的最好路径时,Oracle优化器将使用索引。同样在联结多个表时使用索引也能够提高效率。 另一个使用索引的好处是,他提供了主键(primary key)的唯一性验证。 ...
分类:
其他好文 时间:
2016-09-07 10:29:00
阅读次数:
216
一、触发器触发器(TRIGGER):是由事件来触发某个操作。当数据库系统执行这些事件时,就会激活触发器执行相应的操作。MySQL从5.0.2版本开始支持触发器。触发事件:INSERT语句、UPDATE语句和DELETE语句。1、创建触发器1.1、创建只有一个执行语句的触发器CREATE TRIGGE... ...
分类:
数据库 时间:
2016-08-28 12:22:07
阅读次数:
267
这次上线遇到一个bug,导致回滚。定位到问题,发现是sql执行时一个语句坑了。 简单说下,就以update语句为例。 创建一个表: 插入几条数据: ok,类型转换时的坑来了。 更新的where条件是a_id=0,那么表里会发生更新么? 答案就是所有的行的a_name都更新为了'nn'。 为什么会发生 ...
分类:
数据库 时间:
2016-08-24 14:28:08
阅读次数:
219