现状:
INSERT INTO othertbl
SELECT *
FROM tbl
WHERE id = '1'所以我想把一条记录从tbl复制到其他tbl。这两个表都有一个自动递增的唯一索引。现在新记录应该有一个新的索引,而不是原始记录的索引值,否则复制会导致索引不唯一错误。
一种解决方案是不使用*,但由于这些表有相当多的列,我真的认为它越来越难看了。
所以,..。有没有一种更好的方法来复制一条记录,从而在具有新的自动增量索引的othertbl中生成新的记录,而不必写出查询中的所有列并使用NULL值作为索引。
-hope它是有意义的.
发布于 2010-05-08 00:21:54
我想你必须去掉*并指定列,伙计
发布于 2010-05-08 00:43:54
如果您使用的是SQL Server,则可以使用以下命令获取列的列表
SELECT column_name+', ' from INFORMATION_SCHEMA.COLUMNS where table_name = 'tbl'
使用上面的结果构建insert语句应该很容易。
发布于 2010-05-08 00:49:50
您可以使用此查询转储表的非自动增量列的列表,然后在insert和select语句中使用它:
SELECT group_concat(column_name)
from INFORMATION_SCHEMA.COLUMNS
where table_schema = 'myschema'
and table_name = 'tbl'
and extra != 'auto_increment';https://stackoverflow.com/questions/2790006
复制相似问题