开发过程中经常会遇到数据库已经存有数据,但经过测试发现原来的表设计中字段格式不合适的问题,现在把修改的步骤以及经验总结一下,以供参考查阅
1、修改原字段名name为name_tmp
alter table tablename rename column name to name_tmp;
2、增加一个和原字段名同名的字段name
alter table tablename add name nvarchar2(20);
3、将原字段name_tmp数据更新到增加的字段name 一定要显示进行数据类型转换
方式一:
mysql中
update tablename set name=CAST(name_tmp AS nvarchar2(20));
oracle中
update tablename set name=to_char(name_tmp);
方式二:
update tablename set name =trim(name_tmp );
4、提交数据
commit;
5、更新完,删除原字段name_tmp
alter table tablename drop column name_tmp;
总结:
建表过程中,如果字段只用于基本保存,建议多使用VARCHAR2(32 BYTE)格式,避免出现数字,小数点,日期转换等问题。