create table  TD_sta_worktime                            
(                 
   Dates   Date  not null primary key,             --定义日期,为Datetime型,长度为10,不能为空,为主键              
   Dept_id    int not null,                                --定义部门编号,为整型,不能为空,             
   Numners    int,                          --定义应到人数,为整型              
   OnTime_Numners  int,                                         --定义实到人数,为整型, 
   Later_Numners   int)                                        --定义迟到人数,为整型 ;  建表后我想将Dates这列修改为可为空值
 在PL/SQL中
ALTER  table TD_sta_worktime  
modify  dates  null
修改不了,请教下应该怎么写SQL

解决方案 »

  1.   

    主键列是不允许为空值的,所以虽然语句执行正确但无效
    如果要允话为空,要先删除主键
    sql>alter table TD_sta_worktime drop primary key;
    sql>ALTER table TD_sta_worktime modify dates null;
      

  2.   

    oracle数据库中主键不能为空,好像没有办法吧。
      

  3.   

    主键先撤除,然后设置为空,或者设置个DEFAULT值
      

  4.   

    oracle数据库中主键不能为空,主键先撤除,然后设置为空
      

  5.   

      
    主键不能为null,先将主键删除
      alter table TD_sta_worktime drop primary key;
      alter table TD_sta_worktime modify (dates  null);
      

  6.   


    建议lz先看看 Oracle基础,或者数据库系统概念