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

2020-09-25 10:33:18 +08:00
 qazwsxkevin
想把旧表的一些内容,插入到新表,用了*的话,会把旧表的 id 号也带过去了
(字段比较多)

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

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

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

类似下面这种
insert into sys_userinfo (id, userCode, username, password)
select null, 123456, 'username', 'password'
from t_product;
tydl
2020-09-25 12:56:04 +08:00
navicat 工具
1.导出原表的 excel
2.用 excel 打开,删除 id 列
3.导入 excel 追加新表里
levelworm
2020-09-25 13:09:36 +08:00
呃,可能我理解错了,但是 datagrip 可以直接展开所有字段?然后删除 id 就好了吧。
hooopo
2020-09-25 13:10:56 +08:00
select *, null as id
zhangysh1995
2020-09-25 13:29:35 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/710325

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX