当前位置: 代码迷 >> Oracle开发 >> Oracle 复制表结构及数据 居然丢失了默认值
  详细解决方案

Oracle 复制表结构及数据 居然丢失了默认值

热度:42   发布时间:2016-04-24 06:48:55.0
Oracle 复制表结构及数据 竟然丢失了默认值?
今天复制一个表,sql如下:
create table t_bak as select * from t;

发现t表定义的字段默认值竟然没有复制到t_bak!!!

感觉很坑啊,oracle不熟,请指教。


------解决方案--------------------

引用:
今天复制一个表,sql如下:
create table t_bak as select * from t;

发现t表定义的字段默认值竟然没有复制到t_bak!!!

感觉很坑啊,oracle不熟,请指教。
 
这种情况你就自己复制默认值过去嘛,比如:如果COLUMN1 为空就等于默认值
create table t_bak as select DECODE(T.COLUMN1,NULL,'默认值',T.COLUMN1),T.COLUMN2,... from t;


------解决方案--------------------
主键,约束也会丢失
------解决方案--------------------
所谓的默认值就是约束的一种,复制表不会复制约束信息,原因非常简单,它可能牵涉到其它表,所以不管是牵涉到还是牵涉不到,一律不复制。
  相关解决方案