問:我有這么一個表:
 =======================================
  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了。
但如果你確實需要精確地匹配所有列,那么你可以將復制的行拋給其他表,然后分別決定它們的命運。可能這樣的行也不會很多。
你可以選擇下面的一種方法:
新聞熱點
疑難解答