问:我有这么一个表:
=======================================
TABLE1
temp1 varchar(10)
temp2 varchar(10)
temp3 varchar(10)
temp4 varchar(10)
temp5 varchar(10)
temp6 varchar(10)
在这个表中,temp1 、temp2、 temp3、 temp4是主键
另外还有一个表
=======================================
TABLE2
temp1 varchar(10)
temp2 varchar(10)
temp3 varchar(10)
temp4 varchar(10)
temp5 varchar(10)
temp6 varchar(10)
在这个表中,temp1、temp2、temp3、temp4、temp5是主键。
现在我想从表1拷贝所有的数据到表2中。问题是在表1中,temp5字段可以拥有相同的值,而在表2中,temp5是一个主键。请问这个问题该如何解决呢?
答:有一点我感觉奇怪,就是表的所有列都叫temp,类型和长度也都相同;这样的两个表似乎不太容易彼此映射。
如果列的命名果真如此,那为何不简单地将表1的主键列映射到表2中呢?比如:
Insert into table2 (
temp1, temp2, temp3, temp5, -- primary key
temp4, temp6 -– non-key columns
)
Select temp1, temp2, temp3, temp4, –- primary key
temp5, temp6 -– non-key columns
from table1;
一旦表2加载之后,你就可以弄明白该如何处理temp4与temp5了。
但如果你确实需要精确地匹配所有列,那么你可以将复制的行抛给其他表,然后分别决定它们的命运。可能这样的行也不会很多。
你可以选择下面的一种方法:
新闻热点
疑难解答