2011-05-11 54 views
0

將數據插入到表中時,我需要能夠根據新記錄中的條目使用來自另一個表中的數據填充表。在MYSQL中插入時的查找值

例如,我有一個稱爲緯度的表,當創建新記錄時未填充該表。

緯度細節存儲在一個名爲區域的表格中,該表格有一個名爲'areaid'的列和一個名爲'緯度'的列。

我需要基於插入新記錄中的areaid以正確的緯度更新區域表中的緯度字段。

對不起,如果這是混淆,任何問題請getin touch。

感謝

回答

1

我這裏假設areaidarea表中的唯一或主鍵。可以使用REPLACE INTOINSERT ... ON DUPLICATE KEY UPDATE。如果您要保留latitude表中的緯度,那麼您可以使用觸發器來確保在插入到latitude表中時area表已更新。

CREATE TRIGGER example BEFORE INSERT ON latitude 
    FOR EACH ROW BEGIN 
    REPLACE INTO area (areaid, latitude) VALUES (NEW.areaid, NEW.latitude); 
    END; 
+0

非常感謝,但我得到以下錯誤: – Haribo83 2011-05-11 20:11:21

+0

#1064 - 您的SQL語法錯誤; – Haribo83 2011-05-11 20:11:27

+0

@ Haribo83其實我沒有讀過'REPLACE INTO'的文檔,你應該嘗試使用'INSERT ... ON DUPLICATE KEY UPDATE',因爲它更高效。 – Neil 2011-05-12 19:00:55