精华内容
下载资源
问答
  • Oracle修改主键

    2021-03-19 00:46:56
    --引号中数据库名称和表名称大写 select constraint_name from user_constraints where constraint_type='P' and owner='数据库名称' and table_name='表名称'; ALTER TABLE 表名称 DROP PRIMARY KEY;...
    
    --引号中数据库名称和表名称大写
    select constraint_name from user_constraints where constraint_type='P' and  
    owner='数据库名称' and table_name='表名称';
    
    ALTER TABLE 表名称 DROP PRIMARY KEY;
    
    ALTER TABLE 表名称 ADD PRIMARY KEY(A, B, C);
    
    
    展开全文
  • Oracle修改主键约束  项目需求,有张表,原有三个联合主键,现在需要再加一个字段进去,而恰恰这个字段可以为空的。去数据库捞了一把,还好数据都不为空: SQL> select count(*) from t_wlf_record t where t...

     

    Oracle修改主键约束

      项目需求,有张表,原有三个联合主键,现在需要再加一个字段进去,而恰恰这个字段可以为空的。去数据库捞了一把,还好数据都不为空:

    SQL> select count(*) from t_wlf_record t where t.acceptinvitetime is null;
     
      COUNT(*)
    ----------
             0

      那么我们需要先把这个字段修改为非空字段:

    alter table T_WLF_RECORD modify ACCEPTINVITETIME not null;

      接着才能修改主键约束,约束无法直接修改,只能先删后插:

    alter table T_WLF_RECORD drop constraint SYS_C0018888;
    alter table T_WLF_RECORD add constraint PK_T_WLF_RECORD PRIMARY KEY (INVITEEMSISDN, INVITERMSISDN, ACTIVITYID, ACCEPTINVITETIME);

      最后把注释改下:

    comment on column T_WLF_RECORD.ACCEPTINVITETIME is '接受邀请时间(联合主键)';

      作为一个专业人员,我们应该把回滚语句也写好:

    alter table T_WLF_RECORD drop constraint PK_T_WLF_RECORD;
    alter table T_WLF_RECORD add constraint SYS_C0018888 PRIMARY KEY (INVITEEMSISDN, INVITERMSISDN, ACTIVITYID);
    alter table T_WLF_RECORD modify ACCEPTINVITETIME null;
    comment on column T_WLF_RECORD.ACCEPTINVITETIME is '接受邀请时间';

      最后总结下:约束的作用是保证数据的唯一性和完整性,比如主键约束你作为主键的字段不能为空,唯一约束你不能插入相同数据。具体区分如下:

      1、主键约束要求列值非空,而唯一键约束和唯一索引不要求列值非空,都不能有重复数据;

      2、主键约束和唯一键约束会隐式创建同名的唯一索引,当主键约束或者唯一键约束失效或被删掉时,隐式创建的唯一索引会被删除。

     

     

    展开全文
  • oracle修改主键方法

    2020-11-27 18:22:03
    修改主键方法: step1:删除已建好的主键 alter table [表名] drop primary key --有主键主键约束名的情形 alter table [表名] drop constraint [主键约束名] --有主键约束名的情形 step2:重新新建主键 alter table...

    修改主键方法:
    step1:删除已建好的主键

    alter table [表名] drop primary key --有主键无主键约束名的情形
    alter table [表名] drop constraint [主键约束名] --有主键约束名的情形
    

    step2:重新新建主键

    alter table add primary key ([字段名1],[字段名2],...)  --重建主键
    alter table add constraint [主键约束名]  primary key ([字段名1],[字段名2],...) --重建主键约束
    

    不知道主键约束名可通过以下语句查询:

    select * from user_cons_columns t where t.table_name = '[表名]'
    
    
    展开全文
  • Oracle修改主键约束

    2021-04-08 17:12:48
    项目需求,有张表,原有三个联合主键,现在需要再加一个字段进去,而恰恰这个字段可以为空的。去数据库捞了一把,还好数据都不为空: SQL> select count(*) from t_wlf_record t where t.acceptinvitetime is ...

      项目需求,有张表,原有三个联合主键,现在需要再加一个字段进去,而恰恰这个字段可以为空的。去数据库捞了一把,还好数据都不为空:

    SQL> select count(*) from t_wlf_record t where t.acceptinvitetime is null;
     
      COUNT(*)
    ----------
             0
    

      那么我们需要先把这个字段修改为非空字段:

    alter table T_WLF_RECORD modify ACCEPTINVITETIME not null;
    

      接着才能修改主键约束,约束无法直接修改,只能先删后插:

    alter table T_WLF_RECORD drop constraint SYS_C0018888;
    alter table T_WLF_RECORD add constraint PK_T_WLF_RECORD PRIMARY KEY (INVITEEMSISDN, INVITERMSISDN, ACTIVITYID, ACCEPTINVITETIME);
    

      最后把注释改下:

    comment on column T_WLF_RECORD.ACCEPTINVITETIME is '接受邀请时间(联合主键)';
    

      作为一个专业人员,我们应该把回滚语句也写好:

    alter table T_WLF_RECORD drop constraint PK_T_WLF_RECORD;
    alter table T_WLF_RECORD add constraint SYS_C0018888 PRIMARY KEY (INVITEEMSISDN, INVITERMSISDN, ACTIVITYID);
    alter table T_WLF_RECORD modify ACCEPTINVITETIME null;
    comment on column T_WLF_RECORD.ACCEPTINVITETIME is '接受邀请时间';
    

      最后总结下:约束的作用是保证数据的唯一性和完整性,比如主键约束你作为主键的字段不能为空,唯一约束你不能插入相同数据。具体区分如下:

      1、主键约束要求列值非空,而唯一键约束和唯一索引不要求列值非空,都不能有重复数据;

      2、主键约束和唯一键约束会隐式创建同名的唯一索引,当主键约束或者唯一键约束失效或被删掉时,隐式创建的唯一索引会被删除。

    展开全文
  • db2、oracle修改主键

    2017-04-01 10:22:59
    1、db2修改主键 --第一步:增加列object_id alter table SCM_ORG_MLTY_MACRO_INDEX add object_id varchar(30);   --第二部:将历史数据的object_id填充为com_id update SCM_ORG_MLTY_MACRO_INDEX set object_...
  • oracle修改主键列类型

    千次阅读 2018-04-02 09:24:00
    --删主键 alter table tabA drop primary key cascade drop index; --允许空 alter table tabA modify id null; --更新空 update tabA set id = null; --改类型 alter table tabA modify id integer; --...
  • 我们产品从SPC100升级到SPC200...需要将表T_MOBILE_INDVCONFIG的主键列id从varchar2(100),改成number(17)。可以参考如下SQL:--将原来的ID列重命名为bak_idALTER TABLE T_MOBILE_INDVCONFIG RENAME COLUMN id TO ba...
  • oracle 修改主键,新增字段为主键

    千次阅读 2014-07-25 18:05:37
     drop完所有外键约束后就可以对主键进行修改了  2:删除主键约束 alter table 表名 drop constraint 主键约束名  3:新增字段,并将该字段修改为主键 alter table 表名 add constraint 约...
  • Oracle添加主键、删除主键修改主键

    万次阅读 多人点赞 2019-04-01 16:48:43
    3)有命名主键修改 2.无命名主键 1)无命名主键的创建 2)无命名主键的删除 3)无命名主键修改 附加: user_constraints 和user_cons_columns表的作用及其联系 一、前提 主键解释: 一个表...
  • oracle主键定义、修改
  • Oracle主键保证了单条记录的唯一性,设置了主键的表在插入数据的时候比没有设置主键的表速度更快一些,在给某一张表设置或者更改主键之前,先检查下当前表时候已经设置了主键,可以按照如下步骤进行操作 1、查询某个...
  • Oracle联合主键自增

    2017-12-26 11:08:51
    Oracle数据库联合主键的自增
  • 继续昨天的折腾(Oracle修改主键约束),删掉主键约束后,发现唯一索引并未删掉。仔细看了下,主键约束跟唯一索引名称不一样,这说明是先创建了唯一索引,后创建的主键约束。我们来试验下: SQL> create unique ...
  • Oracle实现主键自增

    2019-01-23 10:04:14
    Oracle实现主键自增 因为oracle不存在mysql 的自增方法auto_increment,所以在Oracle中要实现字段的自增需要使用序列和触发器来实现字段的自增。关于oracle的安装和卸载可以看我上一篇文章。 第一步:创建序列 语法...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 80,650
精华内容 32,260
关键字:

oracle修改主键