2011-08-17 62 views
0

我試圖用另一個表中的值更新表。我想要做的是每次發生更新時刪除表中從中獲取數據的行。更新行並刪除另一個

這是我到目前爲止的代碼:

UPDATE city SET city_longitude = (SELECT city_longitude FROM cities WHERE city.shortCity = cities.city_name OR city.cityName = cities.city_name LIMIT 1) LIMIT 100 

此更新工作,到目前爲止,但我不得不刪去我更新FROM(在城市表中的)的行。

有沒有辦法做到這一點?

+1

你需要編寫stored-proc。或添加一個觸發器。 – adatapost 2011-08-17 10:27:55

+0

只是使用了一個觸發器,它給了我一個錯誤,它不能在觸發器內部刪除,因爲該行在外面被使用(即使我把觸發器後更新) – 2011-08-17 10:55:10

回答

0
delete from cities where some_id = 1 

在您的UPDATE語句完成後,您是否無法沿着這些行做些什麼?你可能希望有一些事實確認你的UPDATE語句成功,然後只有事後才刪除。

更安全的替代方法是有一個標誌叫做isUpdated或沿着這些行的東西,在UPDATE後你可以將它設置爲true,但是你將行保留在原始表中。

相關問題