• db2字段及字段属性修改(增,删,改)操作


    1.添加字段

    alter table [table_name] add [column_name] [column_type] add [column_name] [column_type];

    2.添加字段带默认值

    alter table [table_name] add column [column_name] [column_type] not null with default [value];

    3.删除字段

    alter table [table_name] drop column [column_name];

    4.修改字段类型

    alter table  [table_name] alter column [column_name] set data type  [column_type];

    5.将原表列not null属性修改为null属性

    alter table  [table_name] alter column [column_name] drop not null;

    以上所有的修改都会将表处于reorg pending状态所以我们必须进行reorg才能使该表恢复到正常状态。否则表不可以使用,查询或更新报错 DB2 sqlstate 57016

    6.如果要修改为null属性的字段有约束性,则不能直接修改。

    6.1检查约束性

    select CONSTNAME, TYPE from SYSCAT.TABCONST where TABNAME=[table_name];

    主要看type,一般type的值有P(主键约束)、U(唯一性约束)、K(列值检查)、F(外键)

    以主键为例:

    6.2删除主键:

    ALTER TABLE [table_name] DROP PRIMARY KEY;

    6.3 reorg操作见第7步

    6.4 新增主键(没有则跳过)

    alter table [table_name]  add constraint MY_TABLE_PK PRIMARY KEY([column1],[column2]...);

    MY_TABLE_PK 名称随意,我习惯用表名_PK

    6.5 修改为null属性

    alter table [table_name] alter column [column]  drop not null;

    7.reorg操作

    reorg table [table_name] 

    如果我们不是DBA的话,好多链接数据库的客户端工具是不能执行 reorg table [table_name] 的,我们可以用下面的语句执行reorg操作:

    call SYSPROC.ADMIN_CMD('reorg table [table_name]')

    实际上reorg就是调用的SYSPROC.ADMIN_CMD

  • 相关阅读:
    Rancher2.x部署K8s
    windows 安装 rabbitmq
    Mysql优化
    Docker部署Nginx应用(2)
    Docker入门笔记(1)
    kafka的安装及基本使用
    Dubbo的Api+Provider+Customer示例(IDEA+Maven+Springboot+dubbo)
    zookeeper 数据节点的增删改查
    zookeeper伪分布集群配置
    密集重建
  • 原文地址:https://www.cnblogs.com/wlv1314/p/15845423.html
Copyright © 2020-2023  润新知