在不触摸自动增量 ID 字段的情况下选择

Posted

技术标签:

【中文标题】在不触摸自动增量 ID 字段的情况下选择【英文标题】:Select into without touching the autoincrement ID field 【发布时间】:2014-01-02 21:49:18 【问题描述】:

我想将数据从一个表迁移到另一个表,而不复制自动递增的 ID 字段。

source_table:

标识标签

------

5 个文本

6 文本2

dest_table:

标识标签

------

SELECT LABEL
INTO dest_table
FROM source_table

如果知道 dest_table 中的 ID 是自动递增的主键,上述语句是否有效?

【问题讨论】:

是的,应该没问题。 @user1336827 将其添加为答案而不是评论,以便人们可以投票,我可以接受它 创建表然后使用 INSERT INTO 加载它几乎更好...... SELECT 为什么投反对票?需要解释... 如果您按 F5 键,您会节省很多时间。 【参考方案1】:

是的,它会起作用并导致

1 条文字

2 文本2

但问题是,如果您创建了第二个表并将引用创建的表。然后你必须保持主键的值不变,不要忽略它们。

查询不正确:

INSERT INTO destination (label) SELECT label FROM source

【讨论】:

但是查询如何知道 source_table 的 LABEL 应该适合 dest_table 的 LABEL 列? 通过指定要导入的列【参考方案2】:

是的,它会正常工作,新表中的自动递增只会自动递增。

【讨论】:

以上是关于在不触摸自动增量 ID 字段的情况下选择的主要内容,如果未能解决你的问题,请参考以下文章

在不禁用字段的情况下限制选择 SELECT 选项

如何在使用存储过程时创建具有自动增量的 id 字段?

如何在不触摸或点击文本字段的情况下从动态创建的 UITextField 获取文本(禁用用户交互)?

在不使用 JavaScript 的情况下,如何在选择字段集中时使 Enter 键提交表单?

有没有办法在不写查询中所有字段名称的情况下选择第一个表?

SQL Server,如何在不丢失数据的情况下创建表后设置自动增量?