› MySQL 5.5 Community Server
› MySQL 5.6 Community Server
› Percona Configuration Wizard
› XtraBackup 搭建主从复制
Great Sites on MySQL
› Percona
› MySQL Performance Blog
› Severalnines
推荐管理工具
› Sequel Pro
› phpMyAdmin
推荐书目
› MySQL Cookbook
MySQL 相关项目
› MariaDB
› Drizzle
参考文档
› http://mysql-python.sourceforge.net/MySQLdb.html
qazwsxkevin
V2EX  ›  MySQL

SELECT 旧表内容, INSERT 到新表,如何忽略`id`字段比较科学?

  •  1
     
  •   qazwsxkevin · Sep 25, 2020 · 3153 views
    This topic created in 2192 days ago, the information mentioned may be changed or developed.
    想把旧表的一些内容,插入到新表,用了*的话,会把旧表的 id 号也带过去了
    (字段比较多)

    我能想到的是
    先根据 oldtbl 结构创建一个 tmptbl
    INSERT INTO temptbl SELECT * FROM oldtbl WHERE XX=XX;
    先把东西放到到临时表
    对 temptbl 进行删除 id 列
    再把 temptbl 的内容 SELECT *插入到 newtbl

    如果是在程序设计部分,稍微复杂些,我先把表结构读了出来,建 tmptbl,然后组装字段段,Value 段,避开`id`,一条 SQL 撸完
    而 SQL 本身的语法设计,似乎没有忽略字段这样操作?
    5 replies  •  2020-09-25 13:29:35 +08:00
    RedBeanIce
        1
    RedBeanIce  
       Sep 25, 2020
    一个表三个字段,id, username, password
    不写*,写三个字段

    然后
    'null', 'username', 'password'

    类似下面这种
    insert into sys_userinfo (id, userCode, username, password)
    select null, 123456, 'username', 'password'
    from t_product;
    tydl
        2
    tydl  
       Sep 25, 2020
    navicat 工具
    1.导出原表的 excel
    2.用 excel 打开,删除 id 列
    3.导入 excel 追加新表里
    levelworm
        3
    levelworm  
       Sep 25, 2020 via Android
    呃,可能我理解错了,但是 datagrip 可以直接展开所有字段?然后删除 id 就好了吧。
    hooopo
        4
    hooopo  
       Sep 25, 2020
    select *, null as id
    zhangysh1995
        5
    zhangysh1995  
       Sep 25, 2020   ❤️ 1
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   858 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 20:05 · PVG 04:05 · LAX 13:05 · JFK 16:05
    ♥ Do have faith in what you're doing.