首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >INSERT INTO othertbl tbl SELECT *tbl

INSERT INTO othertbl tbl SELECT *tbl
EN

Stack Overflow用户
提问于 2010-05-08 00:15:44
回答 4查看 305关注 0票数 1

现状:

代码语言:javascript
复制
  INSERT INTO othertbl
    SELECT *
    FROM tbl       
  WHERE id = '1'

所以我想把一条记录从tbl复制到其他tbl。这两个表都有一个自动递增的唯一索引。现在新记录应该有一个新的索引,而不是原始记录的索引值,否则复制会导致索引不唯一错误。

一种解决方案是不使用*,但由于这些表有相当多的列,我真的认为它越来越难看了。

所以,..。有没有一种更好的方法来复制一条记录,从而在具有新的自动增量索引的othertbl中生成新的记录,而不必写出查询中的所有列并使用NULL值作为索引。

-hope它是有意义的.

EN

回答 4

Stack Overflow用户

发布于 2010-05-08 00:21:54

我想你必须去掉*并指定列,伙计

票数 3
EN

Stack Overflow用户

发布于 2010-05-08 00:43:54

如果您使用的是SQL Server,则可以使用以下命令获取列的列表

SELECT column_name+', ' from INFORMATION_SCHEMA.COLUMNS where table_name = 'tbl'

使用上面的结果构建insert语句应该很容易。

票数 0
EN

Stack Overflow用户

发布于 2010-05-08 00:49:50

您可以使用此查询转储表的非自动增量列的列表,然后在insert和select语句中使用它:

代码语言:javascript
复制
SELECT group_concat(column_name) 
from INFORMATION_SCHEMA.COLUMNS 
where table_schema = 'myschema' 
and table_name = 'tbl' 
and extra != 'auto_increment';
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2790006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档