Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何向Oracle 11g中所有现有行的新添加列添加值_Oracle_Oracle11g - Fatal编程技术网

如何向Oracle 11g中所有现有行的新添加列添加值

如何向Oracle 11g中所有现有行的新添加列添加值,oracle,oracle11g,Oracle,Oracle11g,我想在我的生产数据库(11g)中添加一个新列,该列有数百万条记录,但只需要这些现有记录的默认值,这意味着没有新记录可以填充此默认值 alter table table_name add(col_name data_type); Update table_name set col_name=some_default_value; 有可能吗? 根据我的理解,您希望将列添加到现有表中,并使用默认值更新它 alter table table_name add(col_name data_ty

我想在我的生产数据库(11g)中添加一个新列,该列有数百万条记录,但只需要这些现有记录的默认值,这意味着没有新记录可以填充此默认值

 alter table table_name add(col_name data_type);

 Update table_name set col_name=some_default_value; 
有可能吗?

  • 根据我的理解,您希望将列添加到现有表中,并使用默认值更新它

     alter table table_name add(col_name data_type);
    
     Update table_name set col_name=some_default_value; 
    

希望您首先测试此功能,而不是动态更改生产数据库。如果列不可为空,但新记录将获得默认值;但是如果它不可为null,并且您不希望默认值应用于新记录,那么您的应用程序将始终设置该值,因此默认值无论如何都不会应用,对吗?否则,您可以使用默认值进行更新,然后在任何新插入之前删除默认值,这样会更慢。通过这样做,您的数据不会同时受到干扰默认值不会继续。如果使用DML命令(更新),更新所有数百万条记录会比使用DDL(Alter)花费更多时间吗命令本身?Ddl alter不会花费太多时间..我不确定dml更新..但不是在alter命令中给出默认值,上面建议的是最好的