drop column与set unused】的更多相关文章

8i以前,如果需要删除表中的列,需要删除表然后重新建.现在,但我们需要删除一个列时,可以有以下两种方法: Logical Delete Physical Delete Logical Delete(逻辑删除) 我们需要删除表的一个列,通常采用物理删除(ALTER TABLE table_name DROP COLUMN column_name).但如果是一个大表,这将是一个及其消耗时间和资源的操作.假若在系统繁忙时对大表做物理删除,甚至可能会收到 ORA-01562 - failed to ex…
如下实验: gyj@OCM> Create table emp( 2    Empno     number(4)    not null, 3    First_name  varchar2(20), 4    Last_name  varchar2(20), 5    Salary      number(10,2), 6    Deptno     number(2) 7  ); Table created. gyj@OCM> insertinto emp values(100,'yij…
由于项目需求变更,我需要在sqlite数据库的表中删除一个字段,通用的sql操作语句如下: alter table record drop column name; 结果数据库提示如下错误: 搜索得知,原来SQLite目前还不支持drop column,所以必须想出另外一种方法来进行表字段的删除,读者要是说:“直接删掉这个表,然后在新建不见行了!”. 好吧,既然你这么不怕麻烦那就不需要往下看了. 我采用的方法是通过直接复制并过滤表结构来实现: 复制表结构的sql语句如下: create tabl…
由于项目需求变更,我需要在sqlite的表中删除一个字段,通用的sql操作语句如下: alter table task drop column custom_fields; 结果数据库提示如下错误: sqlite> ALTER TABLE task DROP COLUMN custom_fields; Error: near "DROP": syntax error 搜索得知,原来SQLite目前还不支持drop column,所以必须想出另外一种方法来进行表字段的删除. 如下s…
队友给我修改数据的语句.总是执行失败.很纳闷. 如下图: 仔细看了下这个列,并没有什么特殊.如下图: 但其确实有个约束: 'DF__HIS_DRUG___ALL_I__04E4BC85' . 为什么有这个约束呢??? 终于再搜索到这篇文章时,我明白了. 因为列'ALL_INVENTORY_STATE'在创建时赋值了默认值. 所以才有这个约束的. 参考: http://blog.csdn.net/rodjohnsondoctor/article/details/7486213 http://www…
转自 http://foxmile.blog.163.com/blog/static/81169805201143191957184/ 我 们要删除表中不用的字段,如果直接drop column,对于大表,进行DDL操作的时间会比较长,会严重阻塞DML语句,导致应用服务器crash,通常的做法是先set unused column column_name 或者 set unused column_name,column_name...,然后再利用停机时间做alter table table_na…
有时候我们在drop column的时候,会遇到一些default constraints而不能drop,如果我们已经知道constraint name,则可以用下面的语句先把constraint remove掉,然后再drop column. declare @sql nvarchar() set @sql = N'alter table [system] drop constraint DF_system_LastGraceDate' exec sp_executesql @sql 如果我们…
set unused的用法(ORACLE删除字段) 一.问题 现场有一张大数据量的分区表,数据量在10G以上.因某种原因需要删除其中的某些字段.如果直接用alter table1 drop (column1,column2);或者alter table1 drop column column1;和alter table1 drop column column2; 的话,需要执行很长时间,这期间该表被锁,会影响到其它应用. 二.解决方法 使用set unused,等系统空闲时再drop unuse…
一.问题 现场有一张大数据量的分区表,数据量在10G以上.因某种原因需要删除其中的某些字段.如果直接用 alter table1 drop (column1,column2); 或者alter table1 drop column column1;和alter table1 drop column column2;  的话,需要执行很长时间,这期间该表被锁,会影响到其它应用. 二.解决方法 使用set unused,等系统空闲时再drop unused. 1. alter table table…
SET UNUSED的用法 原理:清楚掉字典信息(撤消存储空间),不可恢复.    可以使用 SET UNUSED选项标记一列或者多列不可用.    使用DROP SET UNUSED选项删除被被标记为不可用的列. 语法:    ALTER TABLE table SET UNUSED (COLlist多个)或者 ALTER TABLE table SET UNUSED COLUMN col单个;    ALTER TABLE table DROP UNUSED COLUMNS; set unu…