您的位置:首页 > 数据库

数据库记录的增删查改insert,delete,select,update

2014-09-01 09:25 507 查看
[b]insert:[/b]一般只要参数个数和类型没问题,不会插入异常

[align=left]INSERT INTO t_pos_dynamic_map(autoid, lt_termno, lt_merchno)[/align]
[align=left]VALUES(SEQ_Pos_dynamic_Map_Autoid.NEXTVAL, lTradeInfo.Ltl_Termno, lTradeInfo.Ltl_Merchno);[/align]
[align=left] [/align]

[align=left][b]delete:
[/b][/align]

[align=left]delete from nac_user.t_nac_route_log 删除整表记录,可回滚还原[/align]
[align=left] [/align]

[align=left]truncate:[b]迅速清空整张表[/b][/align]
[align=left]truncate table nac_user.t_nac_route_log 不可回滚还原[/align]

TRUNCATE和DELETE有以下几点区别
1)TRUNCATE在各种表上无论是大的还是小的都非常快。如果有ROLLBACK命令DELETE将被撤销,而TRUNCATE则不会被撤销。
2)TRUNCATE是一个DDL语言,向其他所有的DDL语言一样,他将被隐式提交,不能对TRUNCATE使用ROLLBACK命令。
3)TRUNCATE将重新设置高水平线和所有的索引。在对整个表和索引进行完全浏览时,经过TRUNCATE操作后的表比DELETE操作后的表要快得多。
4)TRUNCATE不能触发任何DELETE触发器。
5)不能授予任何人清空他人的表的权限。
6)当表被清空后,表和表的索引讲重新设置成初始大小,而delete则不能。
7)不能清空父表。

有表A B C,B C中有引用A表字段的外键。先truncate表B C(子表-外键表),然后truncate表A(父表),出现错误:ORA- 02266: 表中的唯一/主键被启用的外键引用
truncate和DELETE不同,TRUNCATE不能直接这么操作,需要:禁用/激活约束
alter table a disable primary key cascade ;    //主键不被级联,(关键字还有drop/modify)
truncate table a;
alter table a enable primary key;              //主键被级联


[b]select:select NULL into 会异常[/b]

[align=left][b]SELECT t.rr_id[/b][/align]
[align=left] INTO rr_Id --获取规则ID [/align]
[align=left] FROM t_l_terminal t[/align]
[align=left] WHERE t.lt_termno = lTradeInfo.Ltl_Termno[/align]
[align=left] AND t.lt_merchno = lTradeInfo.Ltl_Merchno;[/align]
[align=left] [/align]

update:update 0行 不会异常
[align=left]UPDATE t_r_trm_useinfo t[/align]
[align=left] SET t.status = 'S', t.updatetime = SYSDATE[/align]
[align=left] WHERE t.rmerchno = inRMchNo[/align]
[align=left] AND t.rtermno = inRTrmNo[/align]
[align=left] AND t.rinterfaceid = ChannelInfo.Ri_Interface;[/align]
[align=left] [/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐