2011-08-17 61 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,但是你将行保留在原始表中。

相关问题