Mysql:SELECT*FROM ....没有一个字段

moa*_*t21 9 mysql select insert

对于复制条目,我想使用以下语法:

insert into TABLE select * from TABLE where ...
Run Code Online (Sandbox Code Playgroud)

但是,由于第一列是自动增量主键,因此该值必须不同.我的解决方法是指定select查询中的所有字段,而不是使用星号,然后将主键字段留空.由于我的表有超过30个字段,不幸的是不断变化,我正在寻找一个我可以在脚本中实现的解决方案,并且在表结构更改时不需要修改.有任何想法吗?非常感谢你!

Mic*_*ior 3

MySQL 没有提供消除此类字段的方法。但是,如果您知道您总是需要除主键之外的所有字段,那么获取主键实际上也没有太多开销。在代码中排除主键会更容易。

如果获取此信息确实很重要,您可以执行DESCRIBE TABLE以获取列列表,然后构建查询。然而,这可能只会让事情变得更加复杂。我建议忽略主键。