当前位置:   article > 正文

SQL复制表的方法_sql如何复制表

sql如何复制表

1. 复制表结构+数据

问题:新表没有旧表的主键、索引等,需要手动加上。

-- mysql
CREATE TABLE new_table
[AS] /* 加不加AS都行 */
SELECT *
FROM old_table;

-- Oracle
CREATE TABLE new_table
AS
SELECT *
FROM old_table;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

可以创建时指定,或者创建后再alter。

CREATE TABLE new_tabel(	PRIMARY KEY(Column_x))
SELECT * 
FROM old_table
  • 1
  • 2
  • 3

2. 复制表结构

2.1 带主键、索引等

CREATE TABLE new_table
LIKE old_table;
  • 1
  • 2

2.2 不带主键

CREATE TABLE new_table
SELECT *
FROM old_table 
WHERE 1 = 2;
  • 1
  • 2
  • 3
  • 4
-- mysql 不支持
SELECT * INTO new_table
FROM old_table
WHERE 1 = 2;
  • 1
  • 2
  • 3
  • 4

3. 复制表数据

-- 法1,新旧表结构完全一致,要求new table已经存在。
-- 大量数据复制时,性能不如CREATE...。
INSERT INTO new_table
SELECT * 
FROM old_table;
-- 法2,新旧表结构完全一致,要求new table 不存在。但是mysql不支持
SELECT * INTO new_table
FROM old_table;
  
-- 结构不一致
INSERT INTO new_table(c1, c2...)
SELECT c3, c4...
FROM old_table;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/485664
推荐阅读
相关标签
  

闽ICP备14008679号