zoukankan      html  css  js  c++  java
  • select into的不同数据库实现

    DB2中修改表的schema除了通常的创建别名,还可以删除表重建

    删除表的顺序应该是先在另一个Schema下新建表,然后使用select ino将原表的数据导入新表,再删除原表.

    实现如下:

    在SchemaTarget的Schema模式下,执行

    CREATE TABLE Table1 LIKE  SchemaSource.Table1

    INSERT INTO Table1
    SELECT * FROM SchemaSource.Table1

    转自http://hjw2java.iteye.com/blog/1441214

    首先我们再来熟悉下INSERT INTO 与 SELECT INTO 的语法结构:

    ---------

    1、

    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的字段外,还可以插入常量。

    2、

          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 Table2
    SELECT * FROM Table1

  • 相关阅读:
    在shell脚本中执行shell脚本
    通过shell脚本批处理es数据
    JOIN a table with a subquery
    学习率 测试
    步长为float
    解决pycharm问题:module 'pip' has no attribute 'main'
    段错误 “段错误(segment fault)”、“非法操作,该内存地址不能read/write” 非法指针解引用造成的错误。
    快速删除指定目录的指定条件的文件
    包依赖管理 项目的分布式迁移
    判断操作系统
  • 原文地址:https://www.cnblogs.com/highriver/p/3396784.html
Copyright © 2011-2022 走看看