若想修改某列的类型(该列有值存在),可以使用下面步骤:
1.先创建一个列:alter table service_order add (service_order_proc_status_bak char(2));
2.再将要修改的列的值赋值给刚创建的列:update service_order set service_order_proc_status_bak=service_order_proc_status;
3.然后修改刚创建列的约束(此处约束为:not null):alter table service_order modify (service_order_proc_status_bak not null);
4.再删除要修改的列:alter table service_order drop (service_order_proc_status);
5.将新创建的列的名字改为刚删除列的名字:alter table service_order rename column service_order_proc_status_bak to service_order_proc_status;
6.如果该列有描述信息,就在步骤4之前复制一下然后执行:comment on column service_order.service_order_proc_status
is '10: 已接收mvno请求 11: 已处理定单 12: 检测到全业务超时 13: 已接收全业务请求确认 14: 全业务返回省分超时 20: 已接收全业务反馈 21: 检测到MVNO超时 22: 已接收MVNO反馈确认'
1.先创建一个列:alter table service_order add (service_order_proc_status_bak char(2));
2.再将要修改的列的值赋值给刚创建的列:update service_order set service_order_proc_status_bak=service_order_proc_status;
3.然后修改刚创建列的约束(此处约束为:not null):alter table service_order modify (service_order_proc_status_bak not null);
4.再删除要修改的列:alter table service_order drop (service_order_proc_status);
5.将新创建的列的名字改为刚删除列的名字:alter table service_order rename column service_order_proc_status_bak to service_order_proc_status;
6.如果该列有描述信息,就在步骤4之前复制一下然后执行:comment on column service_order.service_order_proc_status
is '10: 已接收mvno请求 11: 已处理定单 12: 检测到全业务超时 13: 已接收全业务请求确认 14: 全业务返回省分超时 20: 已接收全业务反馈 21: 检测到MVNO超时 22: 已接收MVNO反馈确认'
7.最后,别忘了提交事务:commit;
将表中的某列(CODE_CATG)中的字段值全部变为大写update D_CODE_MAP set CODE_CATG =lower/ upper(CODE_CATG);
将某非空列改为可空列:
alter table table_name modify (field_name null); |