`

oracle SQL语句整理

阅读更多

    最近需要修改Oracle数据库,用到了一些常用的SQL语句,在此收集整理一下:

 

     1. 增加列:

      alter table table_name add column_name columntype;

     2.删除列:

      alter table table_name drop column  column_name;

     3.增加关键字PK(Primary Key):

      alter table table_name add constraint table_name_key primary key(p1.p2.p3)

    但是这种情况只是适合于没有设置主键之前,若数据库已经设置了主键,那么必须要按照以下步骤,否则会出错误:

   --第一步:增加列key_no
      alter table TB_ZHAOZHENLONG add key_no int;       
      --第二部:给key_no更新值
      update TB_ZHAOZHENLONG set key_no =rownum;
      commit;       
      --第三步:将key_no置为非空
      alter table TB_ZHAOZHENLONG   modify key_no   int   not null;           
      --第四步:查找主键
      select    constraint_name from    user_constraints where constraint_type='P' and   owner=user    and    table_name='TB_ZHAOZHENLONG' ;
     
      --第五步:删除主键
      ALTER TABLE TB_ZHAOZHENLONG DROP CONSTRAINT PK_TB_ZHAOZHENLONG;

      --第六步:增加主键
      ALTER TABLE TB_ZHAOZHENLONG ADD (CONSTRAINT PK_TB_ZHAOZHENLONG PRIMARY KEY(c_1,c_2,c_3);

 

呵呵,其实我只用到了最后两步,先删除主键,然后再增加主键,但是这里有个问题必须注意,如果你再次增加主键时用到的 Primary key的名字还是上次的,例如开始时 table_name_key,那么当你线删除这个主键之后,然后再次增加主键还是用的这个名字,则会出现以下报错:

ORA-00955:Name is already used by an existing object

可能是oracle有所限制吧,见http://www.expertsexchange.com/Database/Oracle/PL_SQL/Q_24269315.html

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics