2017-10-06 312 views
-1

我有兩個類似的表新數據插入table_1與。我想在phpMyAdmin中寫一個觸發器來更新table_2中的舊數據,新數據插入到table_1並刪除table_1新數據。 ech行有唯一的id。MySQL觸發器:更新新表並刪除舊數據後插入

它看起來很簡單,但我沒有MySQL的知識。

謝謝。

+1

你到目前爲止做了哪些研究? – tilz0R

+1

你的問題是:如果這個,那麼這個,我這個,如果那樣的話。你會嘗試構建一個堅實的問題嗎? – Tomm

+0

我沒有看到table1這裏的重點,也許你可以使用插入重複鍵版插入到表2. –

回答

0

您無法更新執行觸發器的表。 MySQL在鎖定表時鎖定表,並且不允許在鎖定時更新它(這可能會導致死鎖)

我認爲對您更好的解決方案是使用存儲過程。而且,對於我想要實現的目標來說,這似乎很奇怪,你可以用更新的數據來更新table_2,這些數據更具性能且更有意義。

+0

我尋找一種簡單和快速的方式來更新500行每10分鐘有10列的表,這是巨大的數據庫。直接更新佔用大量時間和服務器性能。 –

+0

@ArthurB這種方式你試圖以任何方式沒有幫助,但也可以使事情變得更糟,存儲過程可能會幫助你一點 – BlackBrain

+0

@ArthurB與使用兩個單獨的查詢或過程相比,觸發器不會加快速度。所以它需要大約相同的時間和服務器性能。 (實際上,有時使用觸發器會比較慢,因爲它必須分別對每一行執行)。觸發器是有用的,例如以確保數據完整性(例如,您不能「忘記」更新第二張表)。 – Solarflare