oracle添加列(极速版)

本文介绍了在Oracle数据库中优化ALTERTABLE操作的方法,包括直接增加表列并赋予默认值、在线重定义、使用并行DML更新NULL值以及设置参数加速。最后提到确保新添加列的NOTNULL约束。
摘要由CSDN通过智能技术生成

1.快的(使用等级1,先

操作方法1:直接增加表列并赋予默认值(NOVALIDATE是暂时抛开约束(这里是not null)加快执行

按道理设置该参数(11g默认开启),添加列(只有一种语法)会只改数据字典,速度很快。

一定要的语法(加多列也行):

alter table xxx add column (xxxx not null default xxx);

alter table xxx add column (xxxx not null default xxx,xxxx not null default xxx);

设置参数

ALTER SESSION SET "_add_col_optim_enabled" = TRUE;

下面的因为没加not null,没符合特定语法要求,所以很慢。

SQL> alter table user_mark_result add name3 varchar2(10) default 'a';

Table altered

Executed in 45.86 seconds

2.在线重定义(我感觉稳妥,就是麻烦)(使用等级2,稳

3.加速版(使用等级3

操作方法2:先增加表列,再修改默认值

SQL> alter table user_mark_resultadd name2 varchar2(10) ;

Table altered

Executed in 0.047 seconds

SQL> alter table user_mark_result modify name2 default 'a';

Table altered

Executed in 0.063 seconds

改完后,后续的新行,该列值都自动有了,但是老的还是null的,如果想加not null约束,需要把老的null值全update掉。

方法一、

1.开启加速

alter session enable parallel dml;

2.切片分会话跑

3.

UPDATE user_mark_result SET name2 = 0 WHERE name2 IS NULL;

方法二、

1.rowid切片

2.查看表的并行度

SELECT TABLE_NAME, DEGREE FROM DBA_TABLES WHERE OWNER = 'YOUR_SCHEMA' AND TABLE_NAME = 'YOUR_TABLE_NAME';

3.每份/*+ PARALLEL(p,5) */开并行

UPDATE user_mark_result SET name2 = 0 WHERE name2 IS NULL;

4.改回原本的并行度

自己选

ALTER TABLE your_table_name PARALLEL DEGREE (n);

禁用

ALTER TABLE your_table_name NO PARALLEL;

自行判断并行度

ALTER TABLE your_table_name NO PARALLEL;

-----

最终再将列改为not null

alter table RADINFO.PACSSERIES modify SERIESCATEGORY not null;

查看约束

SELECT constraint_name, constraint_type, search_condition

FROM all_constraints

WHERE owner = 'YOUR_SCHEMA' -- 替换为你的模式名

AND table_name = 'YOUR_TABLE_NAME' -- 替换为你的表名

ORDER BY constraint_type, constraint_name;

  • 46
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 要在Oracle表中添加,可以使用ALTER TABLE语句。以下是一个简单的示例: ```sql ALTER TABLE table_name ADD (column_name data_type); ``` 其中,table_name是要添加的表名,column_name是要添加名,data_type是的数据类型。 例如,如果要向名为employees的表中添加一个名为email的,数据类型为VARCHAR2(50),可以使用以下命令: ```sql ALTER TABLE employees ADD (email VARCHAR2(50)); ``` ### 回答2: 在Oracle中,我们可以通过ALTER TABLE语句来向表中添加新的。具体操作如下: 首先,确定要添加的表名和的名称以及数据类型和长度。 例如,我们想向名为“employees”的表中添加“age”,数据类型为整数类型。 ALTER TABLE employees ADD age NUMBER; 上述语句中,使用ALTER TABLE关键字指定要修改的表名为“employees”。然后使用ADD关键字指定要添加新的,并指定名为“age”,数据类型为NUMBER。 如果需要指定新的长度或约束条件,可以在ADD子句中进一步定义。 例如,指定“age”的最大值为100: ALTER TABLE employees ADD age NUMBER(3) CHECK (age <= 100); 上述语句中,使用NUMBER(3)来指定“age”的最大长度为3个字符,并使用CHECK约束来限制值必须小于等于100。 值得注意的是,添加会导致表的结构变化,可能会影响已有数据和表的性能。因此,在操作之前,需要仔细考虑并备份相关数据以防止意外情况。 添加后,可以使用INSERT语句向新增插入数据,也可以使用UPDATE语句修改已有数据的值。 总的来说,通过ALTER TABLE语句可以在Oracle中向表中添加新的,以满足数据库设计的需求。 ### 回答3: 要在 Oracle 表中添加,可以使用 ALTER TABLE 语句。 ALTER TABLE 语句用于修改已有的表定义。要在表中添加,可以使用 ALTER TABLE 表名 ADD (名 数据类型); 的语法。 例如,假设有一个名为 employees 的表,现在要在该表中添加一个新的名为 salary,数据类型为 NUMBER: ALTER TABLE employees ADD (salary NUMBER); 执行此语句后,新的 salary 将添加到 employees 表中。 需要注意的是,如果要添加已经存在于表中,那么会报错。在使用 ALTER TABLE 添加时,可以选择指定的位置。例如,可以使用 ALTER TABLE 表名 ADD (名1 数据类型1, 名2 数据类型2, ...) AFTER 某个名 的语法来指定新添加的位置。 以上就是 Oracle添加的方法。通过使用 ALTER TABLE 语句,可以轻松地给表添加新的

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汪灵骅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值