更改字段的类型

前言

一般常用的数据库大致可以分为两大类,一类是结构化数据库,另一类是非结构化数据库。无论是那种数据库,在设计的时候都需要字段的类型,一般情况下,我们都会提前设计好数据库所需要的字段、类型等,然后通过评审会进行评审所设计的数据库是否合理,但是有时候在使用一段时间后,会突然发现当初自己设计的某个字段的类型不合理,此时就需要更改下这个字段的数据类型,虽然很麻烦,但是为了业务的需要,我们必须呀更改,所以我们在设计数据库时一定要有未来性,不能只局限于当下。

1、oracle数据库

在oracle中有时候我们会遇到需要更新字段的类型,此时大致可以分为两类

  1. 字段没有值的时候更新字段的类型。
  2. 字段有值的时候更新字段的类型。

1.1 字段没有值的时候更新字段的类型

这种更新比较简单,可以直接更新字段的类型

alter table USER modify status varchar2(10);

1.2 字段有值的时候更新字段的类型

当字段有值的时候,这个时候更新起来就比较麻烦 ,但是还是可以操作的

-- 先更新要改变类型的字段名称
alter table user rename column DATE_TIME to DATE_TIME_OLD;

-- 新建一个字段,为复制值做准备
alter table user add DATE_TIME VARCHAR2(200);
-- 复制 , 把需要改变类型字段的值复制到新添加的字段中
UPDATE user SET DATE_TIME = DATE_TIME_OLD;

-- 删除原字段
alter table user drop column  DATE_TIME_OLD;

注:一般情况下也不需要更换字段的类型,前提是前期的设计必须合理.

2、MySql数据库

在mysql中不会想oracle中那么麻烦。无论字段是否有值,都可以直接更新

alter table coc_company modify  EXIST_DIAGRAM   int(2);

后序

无论采用那种方式更改字段的类型,按理来说都是不合理的,因为字段的类型一旦定下来,就基本不会改变,如果需要改变,那么只能说一方面技术还不太成熟,另一方面说明没有前瞻性,所以我们在设计数据库时一定要具有前瞻性和未来性,避免更改字段的类型。

你可能感兴趣的:(MySQL数据库,oracle,数据库,sql,mysql)