我有两张这样的表:
$yourInputArray = array("ABBA","SKY","BERN");
我想从Table1 : xA, yA, zA, xB, yB, zB
Table2 : x1, y1, z1, x2, y2, z2
到Table1
插入数据,例如所有Table2
列数据分别转到*B
列,所有*1
转到{{ 1}}以同样的方式。
我尝试了这个查询:
*A
但考虑到可维护性,是否有其他解决方案没有明确使用列名?假设我需要添加新列w1,w2,wA,wB。在这种情况下,我必须更改查询。
答案 0 :(得分:2)
执行所需操作的唯一方法是使用动态SQL。我不确定这是否更易于维护。
但是为了可维护性,您应该明确列出所有列:
INSERT INTO Table2 (x1, y1, z1, x2, y2, z2)
SELECT xB, yB, zB, xA, yA, zA
FROM Table1;
答案 1 :(得分:0)
因为您正在将Table1的列的顺序映射到Table2的不同列的顺序。我建议你创建一个映射表Table1Table2Mapping
。
+--------------+ --------------+
| Table1Column | Table2Column |
+--------------+ --------------+
|x1 | xB |
|y1 | yB |
|z1 | zB |
|x2 | xA |
|y2 | yA |
|z2 | zA |
+--------------+----------------+
通过查询这两列来生成动态SQL。