在开发过程中,经常会遇到不同需求,有很多需求需要去进行数据表字段修改,本文章主要介绍
1.备份表SQL
CREATE TABLE [备份新表名] AS
SELECT * from [备份原表名];
-- 例子:备份sys_user表,备份表名称为sys_user_2022523110535
CREATE TABLE sys_user_2022523110535 AS
SELECT * from sys_user;
2.修改表名
alter table [表名] rename to [新表名]
-- 例子:修改sys_user表为user
alter table sys_user rename to user
3.添加字段SQl
ALTER TABLE [表名]
ADD COLUMN [字段名] [数据类型](长度) [限制],
ADD COLUMN [字段名] [数据类型](长度) [限制];
-- 例子:sys_user表添加user_name字段和email字段
ALTER TABLE sys_user
ADD COLUMN user_name varchar(100) not null,
ADD COLUMN email varchar(255) not null;
4.删除字段SQL
ALTER TABLE [表名]
DROP [字段],
DROP [字段];
-- 例子:sys_user表删除user_name字段和email字段
ALTER TABLE user
DROP user_name,
DROP email;
5.修改字段名SQL
- 修改字段名时注意是否需要修改字段数据类型,注意修改前后数据类型对应;
- 如果不行就先备份表再进行将该字段数据清空,修改完字段后,通过update从备份表将数据更新到修改完字段的表中。
alter table [表名] rename [字段名] to [新字段名];
-- 例子:sys_user表修改user_name字段为name
alter table sys_user rename user_name to name;
6.修改字段类型
-- 方式一
alter table [表名] alter column [字段名] type [字段新类型] using [字段新类型数据处理];
-- 方式二
ALTER TABLE [表名]
ALTER [字段名] TYPE [字段新类型];
-- 例子:sys_user表修改user_id字段数据类型由varchar变为integer
alter table sys_user alter column user_id type integer using to_number(id,'9');
7.修改字段备注
comment on column [表名.字段名] is [注释];
-- 例子:给sys_user表user_id字段添加字段备注
comment on column sys_user.user_name is '用户名';