我有一個MySQL表實現郵件隊列,我也用它來發送報告系統中意外錯誤的郵件。有時,這些意外的錯誤會在事務中產生,所以當我回滾交易時,我也撤銷郵件隊列表中插入的行(報告意外錯誤的郵件)。Mysql插入行忽略當前事務
我的問題是我該如何強制在中間的表中插入一行,忽略可能的事務回滾?我的意思是,如果事務最終回滾,而不是回滾報告錯誤細節的電子郵件的行插入。
該表可以被多個異步進程讀取以發送隊列中的郵件,因此在這種情況下,行必須被阻止發送一次郵件,因此不可能使用MyISAM表類型並且正在使用Innodb的。
在此先感謝。
爲什麼不實施適當的異步郵件隊列而不嘗試(錯誤)使用RDBMS功能? – 2012-02-14 12:07:39
@ N.B。我不同意:RDBMS是一個非常有效的郵件隊列。所有基於RDBMS的MTA都與我一致。 – 2012-02-14 12:09:57
@EugenRieck我在哪裏說它是無效的?它在這裏並不適合這種情況,事務正在使用,但查詢需要「生存」回滾。這意味着設計失敗,不同的方法可能是比試圖強制某些數據在回滾中生存更好的解決方案。 – 2012-02-14 12:16:08