以时间为条件 select update


SELECT * FROM service_request_t where create_time >='2012-02-02 00:00:00' and siteid='8'and creator='STAFF00707';


update service_request_t set owner_group='group20120314000089',siteid='22'  where create_time >='2012-02-02 00:00:00' and siteid='8'and creator='STAFF00707';

根据提供的引用内容,select for update是一种在Oracle数据库中使用的锁定机制,它可以锁定符合where条件的数据行,以防止其他事务对这些数据行进行修改。而select for update nowait则是在锁定数据行时,如果无法立即获取锁定,则会立即返回错误信息,而不是等待其他事务释放锁定。 相比之下,select for update insteal是一种更加灵活的锁定机制,它可以在不阻塞其他事务的情况下锁定数据行。当一个事务需要锁定某些数据行时,如果这些数据行没有被其他事务锁定,则该事务可以立即获取锁定并继续执行。如果这些数据行已经被其他事务锁定,则该事务会等待其他事务释放锁定,然后再获取锁定并继续执行。 以下是一个使用select for update insteal的示例: ```sql -- 假设有一个名为test的表,其中包含id和name两列 -- 现在需要锁定id为1的数据行,以便进行修改操作 -- 如果该数据行已经被其他事务锁定,则等待其他事务释放锁定后再进行锁定操作 -- 开启一个事务 BEGIN TRANSACTION; -- 锁定id为1的数据行 SELECT * FROM test WHERE id = 1 FOR UPDATE OF name NOWAIT; -- 如果上一条语句返回了错误信息,则表示无法立即获取锁定 -- 可以选择等待一段时间后再次尝试获取锁定,或者回滚事务并退出 -- 如果上一条语句没有返回错误信息,则表示已经成功获取锁定 -- 可以对该数据行进行修改操作 -- 提交事务 COMMIT; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值