select into的不一樣數據庫實現

DB2中修改表的schema除了一般的建立別名,還能夠刪除表重建java

刪除表的順序應該是先在另外一個Schema下新建表,而後使用select ino將原表的數據導入新表,再刪除原表.sql

實現以下:測試

 

在SchemaTarget的Schema模式下,執行spa

CREATE TABLE Table1 LIKE  SchemaSource.Table1blog

INSERT INTO Table1
SELECT * FROM SchemaSource.Table1開發

 

 

轉自http://hjw2java.iteye.com/blog/1441214get

 

首先咱們再來熟悉下INSERT INTO 與 SELECT INTO 的語法結構:it

---------table

一、變量

Insert是T-sql中經常使用語句,Insert INTO table(field1,field2,...) values(value1,value2,...)這種形式的在應用程序開發中必不可少。但咱們在開發、測試過程當中,常常會遇到須要表複製的狀況,如將一個table1的數據的部分字段複製到table2中,或者將整個table1複製到table2中,這時候咱們就要使用SELECT INTO 和 INSERT INTO SELECT 表複製語句了。

      1.INSERT INTO SELECT語句

      語句形式爲:Insert into Table2(field1,field2,...) select value1,value2,... from Table1

      要求目標表Table2必須存在,因爲目標表Table2已經存在,因此咱們除了插入源表Table1的字段外,還能夠插入常量。

二、

      SELECT INTO FROM語句

      語句形式爲:SELECT vale1, value2 into Table2 from Table1

      要求目標表Table2不存在,由於在插入時會自動建立表Table2,並將Table1中指定字段數據複製到Table2中。

----------

今天在DB2下須要表複製的狀況下,反覆使用SELECT INTO FROM 都提示失敗,後來一查,才發如今DB2中,SELECT INTO 被用在了諸如存儲過程當中給變量複製的功能,複製表只能用另外一種辦法實現了:
CREATE TABLE Table2 LIKE  Table1

INSERT INTO Table2
SELECT * FROM Table1
-----------

注:經查實,在Oracle中select into from複製表也不可使用-----緣由很簡單:select into是PL/SQL language 的賦值語句!若是使用則Oracle會拋出0RA-00905:missing keyword的異常!

而Oracle的替代作法是:

CREATE TABLE Table2 AS Table1

 

INSERT INTO Table2SELECT * FROM Table1

相關文章
相關標籤/搜索