2012-07-19 23 views
1

使用save()時,我得到了下面的錯誤上Railo與CFWheels:因爲 BINLOG_FORMAT =語句不可能寫入二進制日誌和:CFWheels - 錯誤插入的記錄與保存()方法

無法執行的語句至少有一個表使用限制爲基於行的日誌記錄的存儲引擎 。當 事務隔離級別爲READ COMMITTED或READ UNCOMMITTED時,InnoDB僅限於行日誌記錄。

這裏是我的代碼:

<cfset params.vote['voteUserID'] = params.link.linkUserID /> 
<cfset params.vote['voteLinkID'] = params.link.linkID /> 
<cfset params.vote['voteType'] = 1 /> 

<cfset vote = model("vote").new(params.vote) /> 
<cfset vote.save() /> 

任何想法是怎麼回事?我有另一個插入語句是相似的,它工作正常。我懷疑這是與我的數據庫表中的設置有關嗎?我正在使用MySQL。

謝謝。

回答

0

好了,似乎從「InnoDB的」更改數據庫表的存儲引擎「的MyISAM」解決了問題。也許CFWheels由於某種原因不能很好地與「InnoDB」搭配;也許有人可以添加關於這是爲什麼的評論?

+0

許多CFWheels的ORM功能依賴於一個數據庫引擎,可以追蹤交易。 (例如,嵌套屬性和回調會,如果他們打破了驗證或回調鏈回滾事務。)我建議你看,如果你能解決這個問題,而無需切換到transactionless-的MyISAM。 – 2012-07-20 11:42:03

+0

所以你推薦實際使用InnoDB的車輪? – 2012-07-20 15:09:24

+0

是的。它有助於保持數據的參照完整性。 – 2012-07-20 20:57:18