MySQL 裡有在使用 Stored Function/Trigger 的,大概都會碰到過 #1422 這個Error.
今天記錄一下我的狀況:
我寫了一個 Procedure ,其中有一段
UPDATE table1 SET field1=....., field2=....., WHERE .....
其中一個 field = (SELECT mem_id FROM members WHERE xxxx=xxxxx)
這裡呼叫了 members 這個 table,
而 UPDATE 的 table1 裡面的 Trigger,又有一段
UPDATE members SET xxx=xxxxx......
所以,此時,就產生了 #1422的Error!
也就是說,我在一個 UPDATE Statement 中呼叫了members 的 SELECT ,而在 該UPDATE中又啟動 trigger 又去 UPDATE members ,
而 #1422 的基本錯誤就是:不能在 自己的 trigger 中又要去 update自己!
一般而言,這是 對自己的 table
而我上述的例子,不是自己的 table, 而是有引用到的 另一個 table。我一直在自己的table中找不到錯誤,後來經朋友幫忙看,才發現是 用到的另一個table members的問題!
記錄在這裡,留給自己參考,如果剛好有緣者,也請參考之。
本網誌記錄網站設計的一些內容筆記。 網站設計需要整合很多工具與概念。 我畢業自淡江電子計算機科學學系,算是科班出身。但我們那個年代(50年代,唉!LKK了!),網路還只是剛開始,相關的技術都是出社會以後陸續接觸學習。 網站的建立與設計,牽涉的範圍真的很廣泛。 網站的目地是甚麼?銷售網頁、電子購物、廣告、社群經營、互動、教學、客戶服務、網站應用程式、...... 需要整合的人才,程式設計師、資料庫管理師、網頁美編、文字編輯、多媒體製作等等。 這裡將記錄一個LKK對網站系統重新學習與複習,還有教學使用的一些資料。
訂閱:
張貼留言 (Atom)
如何判斷現在FORM是在 insert mode? 還是 update mode?
只要用 if (empty({primary_key})) 就可以知道是否為新增模式了。 如果 {promary_key} 是空白的,那麼就是在新增模式;反之,就是更新模式。 以上。
-
讓 PHP 接收 post 的 json 資料 - 8月 02, 2013 我們在串接API的時候會用到 CURL 函式 POST 資料給 JSON 接收,雖然我們是使用 POST 傳出資料。但是我們在接收的 SERVER 端使用 $_POST 卻抓不到任何資料。 原來 ...
-
Note that it's ultimately the responsibility of the server admin to ensure his system is secure. These are some basic security tips tha...
-
分享:網站上 http://shuai.be/archives/php-undefined-index/ 平時用 $_GET[ ‘ xx ’ ] 取得參數值時,如果之前不加判斷在未傳進參數時會出現這樣的警告 : PHP Notice: undefined i...
沒有留言:
張貼留言