
一个我喜欢的女孩,之前因为一件事,骂我叫我滚,还删除我所有联系方式,跟他发信息就叫我滚,她知道我喜
别理她,她肯定是没有别的备胎然后突然间想起来你了,听我的,兄弟
数据库问题
用delete语句把表中一部分数据删除了以后,好像说有个rollback指令可以恢复数
不是你怎么写的。
首先,你要理解事务的概念。
commit、rollback是在事务处理中,提交、回滚的命令。
其次,你的编辑器,要设置成:不是自动提交数据。
比如:delect from tabname;此时,如果想提及,则执行:commit;如果想回滚:rollback;如果你设置的是 自动提交。
那么你在执行delete后,就自动commit了,也就不能rollback; 了
为什么实际开发中不使用删除(delete)语句
1:delete删除内容不删除定义,不释放空间delete from 表名 where 条件 --按条件删除数据delete from 表名 --删除全部数据2:删除内容、释放空间但不删除定义truncate table 表名 --清空数据,保留表结构3:删除内容和定义,释放空间drop table 表名 --表结构包括数据一起删除注:truncate 比 delete速度快,且使用的系统和事务日志资源少。
为什么不可以使用delete from---语句删除数据量比较大的表(百万级)中的数据
你是怎么写的,首先要理解事务的概念。
commit、rollback是在事务处理中,提交滚的。
其次,你的编辑器,要设置成:不是自动提交数据。
比如:delect from tabname;此时,如果想提及,则执行:commit;如果想回滚:rollback;如果你设置的是 自动提交。
那么你在执行delete后,就自动commit了,也就不能rollback; 了
关于SQL删除语句TRUNCATE和DELETE
truncate操作同没有where条件的delete操作十分相似。
1、无论truncate大表还是小表速度都非常快。
delete要产生回滚信息来满足回滚需求,而truncate是不产生的。
2、truncate是DDL语句进行隐式提交,不能进行回滚操作。
3、truncate重新设定表和索引的HWM(高水标记),由于全表扫描和索引快速扫描都要读取所有的数据块知道HWM为止。
所以全表扫描的性能不会因为delete而提高,但是经过truncate操作后速度会很快。
4、truncate不触发任何delete触发器。
5、不能赋给某个用户truncate其它用户表的权限。
如果需要trucate其它用户表的权限必须对该用户赋DROP ANY TABLE权限。
6、当表被truncate后,这个表和索引所占用的空间会恢复到初始大小,而delete操作不会减少表或索引所占用的空间。
7、不能truncate一个带有外键的表,如果要删除首先要取消外键,然后再删除。
TRUNCATE和DELETE有以下几点区别1、TRUNCATE在各种表上无论是大的还是小的都非常快。
如果有ROLLBACK命令DELETE将被撤销,而TRUNCATE则不会被撤销。
2、TRUNCATE是一个DDL语言,向其他所有的DDL语言一样,他将被隐式提交,不能对TRUNCATE使用ROLLBACK命令。
3、TRUNCATE将重新设置高水平线和所有的索引。
在对整个表和索引进行完全浏览时,经过TRUNCATE操作后的表比DELETE操作后的表要快得多。
4、TRUNCATE不能触发任何DELETE触发器。
5、不能授予任何人清空他人的表的权限。
6、当表被清空后表和表的索引讲重新设置成初始大小,而delete则不能。
7、不能清空父表。
TRUNCATE TABLE (schema)table_name DROP(REUSE) STORAGE 在默认是 DROP STORAGE 当使用DROP STORAGE时将缩短表和表索引,将表收缩到最小范围,并重新设置NEXT参数。
REUSE STORAGE不会缩短表或者调整NEXT参数在特殊情况下使用 REUSE STDELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的的删除操作作为事务记录在日志中保存以便进行进行回滚操作。
TRUNCATE TABLE 则一次性地从表中删除所有的数据页并不把单独的删除操作记录记入日志保存,删除行是不能恢复的。
并且在删除的过程中不会激活与表有关的删除触发器。
执行速度快。
baidu上已经很详细了,不明白你要知道更多什么
在什么情况下使用
谁能告诉我SQL server里,删除语句 Drop、DELETE、TRUNCATE三者有什么区别
--删除表结构,并删除里边的数据及在这个表上的索引等等drop table 表名--清空数据,只是数据truncate table 表名--按条件删除数据delete from 表名 where 条件--删除全部数据,但不释放空间delete from 表名这么看,delete from 表名和truncate table 表名似乎是一样的,但是truncate 执行后会释放数据库的空间,而delete不会释放空间drop table 表名 的话,也是可以释放空间的执行truncate 和drop后,会导致触发器,存储过程,函数等等的失效,truncate的话,可以重新编译一下,即可,但是drop后,可能就会永久失效了
DB2 误删除了表中的一条数据 使用的语句是 delete from tableA where id =x ;求如何恢复
1. 首先数据库要可以前滚恢复(数据库配置参数logretain或userexit打开)。
db2 connect to dbnamedb2 update db cfg using logretain ondb2 backup db dbname (当打开后,该数据库会处于rollforward pending状态,所以要做一次全备份)2. 对要实施Drop Table Recovery的表空间(限regular tablespace),执行:db2 alter tablespace 表空间名称 dropped table recovery on 3. 用 list history dropped table all for 数据库名 得到删除表的tableid(例如 0000000000006d0000020003)和表结构的生成语句(DDL),记录tableid和该语句以便恢复。
之后,用drop命令删除的表中的数据可以在前滚恢复时导出。
db2 list history dropped table all for dbname4. 恢复数据库后,如果想恢复已删除的表,在前滚时加recover dropped table tableid to 目标目录。
在该目录下被删除的表中的数据导出。
利用上面提到表结构生成语句生成被删除了的表,然后用import命令将数据导入表中。
db2 restore db dbname tablespace(tablespacename) without rolling forward without promptingdb2 rollforward db dbname to end of logs and stop tablespace(tablespacename) recover dropped table table id to path cd path利用 db2 list history dropped table all for dbname 查出的表结构生成语句生成被删除了的表db2 import from data of del insert into tablename



