2009-10-07 44 views
0

我有一個表在一個數據庫中,調用此db x。我有另一個數據庫,稱之爲y。我想將數據從x.some_table複製到y.some_table。我不想做一個完整的表格副本,因爲某些列在數據庫b中沒有意義。我使用以下查詢:mysql插入嵌套選擇從其他數據庫截斷雙值

INSERT INTO y.some_table (a_field) SELECT a_field FROM x.some_table; 

a_filed在兩個表中定義爲DOULBE(17,0)。如果我運行這個: USE y; SELECT a_field FROM x;

然後我得到完整值的輸出 - 沒有浮點截斷。但是,如果在使用我顯示的第一個查詢插入後,我的some_table.a_field中除了整數之外什麼都沒有。浮點剩餘部分被截斷。

我在做什麼錯?謝謝。

回答

1

您確定在這兩個表中列被定義爲DOUBLE(17,0)嗎?小數點後面的數字是否指定了17個總數字?如果是這樣,你從表中選擇x也應該有0小數位。如果它在x中的定義與DOUBLE(17,6)不同,並且您試圖將其插入到DOUBLE(17,0)中,那麼小數點將被截斷,我相信。

+0

謝謝。確切的問題。沒有想到要看這裏,因爲兩者都是這樣定義的。也許我的程序對它正在查看的模式感到困惑。我會檢查命令行並看看。謝謝。 – 2009-10-07 17:00:11

0

不知道是什麼導致截斷..你可以確保你正確設置浮動類型..如果你認爲你的表定義是好的,你可以創建一個腳本來測試它 例如,在PHP中,你可以做類似 -

$sql = "SELECT your_select_field FROM your_table"; 
$result = mysql_query($sql); 

while($row = mysql_fetch_assoc($result)) { 
    $sql_ins = "INSERT INTO your_insert_table SET your_field = '".$row['your_select_field']."' "; 
    $res_ins = mysql_query($sql_ins); 
} 
相關問題