CREATE TABLE AS SELECT语句不会创建一个新表并将原表的列及其NOT NULL约束条件复制到新表中。
我的表tab1有col1和col2两列,它们都有not null约束条件。create table tab1 (col1 varchar(23) not null, col2 int not null)现在我想要创建一个新表tab2,并使用以下命令将表tab1的定义和数据复制到表tab2中:
create table tab2 as select col1,col2 from tab1但是,表tab2中的col1和col2没有NOT NULL约束条件。如何让新表的列与原表完全相同,包括NOT NULL约束条件呢?
如果可以使用
CREATE TABLE AS SELECT语句实现这一点,那将非常感激。在Oracle、DB2和SQLServer中,CREATE TABLE AS SELECT语句和SELECT .. INTO语句都可以将NOT NULL CONSTRAINT与数据一起复制。
CREATE TABLE tab3 AS SELECT * FROM TAB1 UNION ALL SELECT * FROM TAB2这是我实际的要求。 - vchitta