假设我在 MySQL 数据库中有 2 个表:
表1
- 身份证
- 姓名
- 类型
表2
- 身份证
- 类型
- 姓名
我想使用此语法将一行从 Table1 导入到 Table2,而不是命名所有列:
INSERT INTO Table2 SELECT * FROM Table1 WHERE ID = 101
列的顺序不同这一事实是否重要?或者只要所有列都具有相同的名称,就可以吗?
最佳答案
这两个表中的每一个都有一个实际的列顺序,您可以通过检查信息架构表来查看。 但是,您不应该依赖它,因为它可能会在未来的某个时候发生变化。
因此,最佳做法是始终指定与 INSERT
相关的列,包括在 INSERT INTO ... SELECT
的情况下:
INSERT INTO Table2 (ID, Name, Type)
SELECT ID, Name, Type
FROM Table1
WHERE ID = 101;
无论每个表中的基础列顺序如何,上述查询将始终按您预期的方式运行。
关于mysql - INSERT INTO ... SELECT * 中的列顺序很重要吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55689272/