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