说明:
今天在某处看到SELECT INTO 语句可用于创建表的备份复件,尝试了Oracle和Mysql都不能被使用。经过了多方查询发现,Oracle和Mysql也有相似功能的不同实现方式,现在一一列举一下。
1.首先是常用的Oracle数据库,基本语法如下:
INSERT INTO targetTableName[(字段名,...)] SELECT */[字段名,...] FROM sourceTableName [WHERE子句]
这里可以复制指定字段的数据,前提是目标表必须存在。否则会报表或者视图找不到的错误:[Err] ORA-00942: table or view does not exist。也可以通过创建表的语法进行复制
CREATE TABLE targetTableName AS SELECT * FROM sourceTableName
这种方式也可以进行赋值,一定不要把AS关键字落下,否则会产生错误:[Err] ORA-00922: missing or invalid option
2.再说一下Mysql的使用语法,基本是与Oracle保持一致的:
INSERT INTO targetTableName[(字段名,...)] SELECT */[字段名,...] FROM sourceTableName [WHERE子句]
同样这里可以复制指定字段的数据,前提是目标表必须存在。否则会报表或者视图找不到的错误:[Err] 1146 - Table 'targetTableName' doesn't exist。也可以通过创建表的语法进行复制
CREATE TABLE targetTableName SELECT * FROM sourceTableName
Mysql就比较灵活一点儿了,可以把AS关键字省去。
以上内容虽然简单,但也是把两种数据库都尝试了一下。
最后说明一下:SELECT INTO FROM 语法只是在sql语句层面时在PL/SQL中使用。
参考:
https://blog.csdn.net/lm_52111/article/details/77893796