我正在使用以下方式创建表:
CREATE TABLE test AS
SELECT t1.column1,
t1.column2,
t1.column3,
t2.column4 ,
t2.column6 ,
t1.column8
FROM table_1 t1
JOIN table_2 t2
ON t1.column1 = t2.column2 ;
之后我使用以下alter command
ALTER TABLE test ADD COLUMN New_column1 varchar NOT NULL DEFAULT 0,
ADD COLUMN New_column2 varchar NOT NULL DEFAULT 0,
;
现在我想将两个查询合并为一个。
我怎么能这样做?
谢谢
答案 0 :(得分:1)
虽然很难在NOT NULL
语句中设置CREATE TABLE AS
约束,但您仍应该能够在单个SQL语句中在新表中创建新列。
但是,您需要第二个(更快)SQL来为两个新列设置NOT NULL
。
SELECT
t1.column1,
t1.column2,
t1.column3,
t2.column4,
t2.column6,
t1.column8,
0 AS New_column1,
0 AS New_column2
INTO test
FROM table_1 t1
JOIN table_2 t2 ON t1.column1 = t2.column2;
ALTER TABLE test ALTER COLUMN New_column1 SET DEFAULT NOT NULL;
ALTER TABLE test ALTER COLUMN New_column1 SET DEFAULT NOT NULL;
答案 1 :(得分:0)
有多种方法可供选择:
1)这将创建表并插入数据。
Select * into test from (
SELECT t1.column1,
t1.column2,
t1.column3,
t2.column4 ,
t2.column6 ,
t1.column8
FROM table_1 t1
JOIN table_2 t2
ON t1.column1 = t2.column2
)