我正在编写 SQL(用于 Oracle),例如:
INSERT INTO Schema1.tableA SELECT * FROM Schema2.tableA;
其中 Schema1.tableA 和 Schema2.tableA 具有相同的列。但是,这似乎是不安全的,因为在 SELECT 中返回的列的顺序是未定义的。我应该做的是:
插入到 Schema1.tableA (col1, col2, ... colN) 从 Schema2.tableA 中选择 (col1, col2, ... colN);
我正在使用一些脚本为很多表执行此操作,所以我想做的是编写如下内容:
插入到 Schema1.tableA (foo(Schema1.tableA)) 从 Schema2.tableA 中选择(foo(Schema1.tableA));
其中 foo 是一些漂亮的魔法,它从表一中提取列名并将它们打包成适当的语法。想法?