SQL: duplicate table

 

 

MySQL

  1. create table new_table select c1,c2 from old_table [where 1=2]

    lose index, auto_increment

  2. create table new_table like old_table

    table structure is exactly the same, no data

  3. insert into new_table select * from old_table
    insert into new_table (c1,c2) select (c1,c2) from old_table

    just copy data, new_table must exist

 

 

PostgreSQL

  1. create table new_table as table old_table [ with no data ]
    create table new_table as select * from old_table where condition

    All the statements above copy table structure and data do not copy indexes and constraints

 

sqlite3

  1. create table new_table as select * from old_table where 0

     

  2. insert into new_table select * from old_table

     

  3. select sql from sqlite_master where type='table' and name='old_table'

     

  4. sqlite3 dbfile '.schema oldtable' | sed '1s/oldtable/newtable/' | sqlite3 dbfile
    sqlite3 dbfile '.schema newtable'
    复制代码
    CREATE TABLE mytable (
        contact_id INTEGER PRIMARY KEY,
        first_name TEXT NOT NULL,
        last_name TEXT NOT NULL,
        email TEXT NOT NULL UNIQUE,
        phone TEXT NOT NULL UNIQUE
    );
    
    -- Two variations
    INSERT INTO mytable VALUES ( 1, "Donald", "Duck", "noone@nowhere.com", "1234");
    INSERT INTO mytable ( contact_id,first_name,last_name,email,phone ) VALUES ( 2, "Daisy", "Duck", "daisy@nowhere.com", "45678");
    复制代码

     

posted @   ascertain  阅读(52)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2022-04-30 Springboot: redirect
2021-04-30 浏览器插件
点击右上角即可分享
微信分享提示