ORACLE數據庫中表已經存在且有記錄﹐我要修改結構(通過SQL語句)﹔
現在要加一字段并設置主關鍵字﹐新字段為主關鍵字的一個字段
因為設置主關鍵字時要求字段不為空﹐而此時表中已經存在記錄﹐Microsoft SQL Server中可以用以下語句實現﹐但是ORACLE我就不知如何做到了
ALTER TABLE tbTest ADD CID CHAR(2) NOT NULL CONSTRAINT DF_tbTest_CID DEFAULT('F') FOR CID
ALTER TABLE tbTest ADD CONSTRAINT PK_tbTest PRIMARY KEY (sCode,CID)

解决方案 »

  1.   

    alter table temp0 add (cid number);
    update temp0 set cid=rownum 
    commit;
    alter table temp0 add CONSTRAINT pk_cid primary key(cid);
      

  2.   

    你要加的字段应该是另一个外键吧,你可以把表数据备份一下,然后重新建一个表(你可以把这个表的建表脚本copy一下然后修改加个字段就可以了),建好后再从刚才的备份表里把数据导进去。
      

  3.   

    kinglht(爱新觉罗至尊宝) 這種辦法太笨hongqi162(失踪的月亮)的語句已經基本達到要求了﹐就是缺一個默認值
      

  4.   

    alter table temp0 add (cid number default 0) ;//这样字段就有默认值了
      

  5.   

    新增的字段不能設為非空嗎﹐我加入NOT NULL時提示
    ORA-01758: table must be empty to add mandatory (NOT NULL) column
    必須清空數據表才能指定