跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

Oracle的SELECT INTO和INSERT INTO SELECT,表复制就这么简单!

Hey,还在为Oracle中的表复制而烦恼吗?今天就来聊聊两种常用的表复制语句:SELECT INTO和INSERT INTO SELECT。别看它们名字相似,用法和场景可大不相同哦!

1. INSERT INTO SELECT语句

这个语句的形式是:Insert into Table2(field1,field2,...) select value1,value2,... from Table1。

  • 注意点:
  • 目标表Table2必须存在,字段也必须匹配。
  • 如果Table2有主键,则field1, field2...中必须包括主键。
  • 语法要注意,不要加values,否则就和你插入一条数据的SQL语句混淆了。
  • 举个例子,我们可以这样使用INSERT INTO SELECT来复制表数据:

    insert into Table2(a, c, d) select a, c, 5 from Table1
    

    2. SELECT INTO FROM语句

    这个语句的形式是:SELECT vale1, value2 into Table2 from Table1。

    它的特点是在插入时会自动创建表Table2,并将Table1中指定字段数据复制到Table2中。

    举个例子:

    select a, c INTO Table2 from Table1
    

    注意:如果在PL/SQL中执行这条语句,会报错,因为SELECT..INTO是PL/SQL语言的一部分,不能单独作为一条SQL语句执行。通常在PL/SQL程序块中使用。

    如果想在PL/SQL中实现该功能,可以使用Create table newTable as select * from ...。

    总的来说,这两种语句各有特点,根据你的具体需求选择合适的语句就能轻松实现表复制。

    更多关于Oracle编程的知识,欢迎关注「新派编程网」(www.xjpbg.com),我是林译川,我们下期再见!

    相关文章