1. 程式人生 > >MySQL觸發器更新本表資料異常:Can't update table 'tbl' in stored function/trigger because it is already used by statement which invoked this

MySQL觸發器更新本表資料異常:Can't update table 'tbl' in stored function/trigger because it is already used by statement which invoked this

 如果你在觸發器裡面對剛剛插入的資料進行了 insert/update, 則出現這個問題。因為會造成迴圈的呼叫.

create trigger test
before update on test
for each row
  update test set NEW.updateTime = NOW() where id=NEW.ID;
END


應該使用set操作,而不是在觸發器裡使用 update,比如

create trigger test
before update on test
for each row
set NEW.updateTime = NOW();
END

相關推薦

MySQL觸發器更新資料異常:Can't update table 'tbl' in stored function/trigger because it is already used by statement which invoked this

 如果你在觸發器裡面對剛剛插入的資料進行了 insert/update, 則出現這個問題。因為會造成迴圈的呼叫. create trigger testbefore update on testfor

Cant update table ‘xxx’ in stored function/trigger because it is already used by statement which invoked this stored function/trigger

error trigger 操作 xxx ready 觸發 sql tab 觸發器 MySQL: Solution for ERROR 1442 (HY000): Can’t update table ‘xxx’ in stored function/trigger bec

nacicat for mysql/mysql 設定外來鍵報錯1005:Can't create table (errno: 150)解決辦法

nacicat for mysql/mysql 設定外來鍵報錯1005:Can’t create table (errno: 150) 使用nacicat for mysql工具或者mysql 命令列中

MySQL資料庫()的匯入匯出(備份和還原) mysql 根據一張資料更新另一張

(select * from crawlDocs order by DocCrawlTime desc limit 2000 into outfile '/tmp/weixinData' FIELDS TERMINATED BY ',';) 一般最好是匯出到/tmp目錄下,因為這樣mysql使用者也可以寫入。

MySql觸發器對同更新

觸發器初始結構: DELIMITER $$ CREATE TRIGGER `資料庫名`.`觸發器名` BEFORE/AFTER INSERT/UPDATE/DELETE ON `資料庫名`.`表名` FOR EACH ROW BEGIN -

資料mysql中匯入hive異常解決:

將資料從mysql中匯入hive表中,出現異常ERROR hive.HiveConfig: Could not load org.apache.hadoop.hive.conf.HiveConf.

SQL技巧兩則:選擇一個的字段插入另一個,根據其它的字段更新內容

name 一個表 res color 成了 from style 策略 內容 最近,在作django數據表遷移時用到的。 因為在django中,我把本來一個字符型字段,更改成了外鍵, 於是,哦喝~~~字符型字段相當於被刪除了, 為了能導入這些字段的外鍵信息,於是出此下

MySQL清空單資料

一:問題背景        1. 問題描述          之前測試1千萬資料插入MySQL資料庫裡面,分別使用單執行緒的方式和執行緒池的方式對比

mysql查詢哪張資料最大

mysql資料庫中information_schema 資料庫儲存了資料庫很多資訊,可以通過查詢tables表來獲得所需要的表相關資訊。 mysql> select table_name,table_rows from  tables order by table_rows

Mysql 對比兩張資料

檢視一個表中的資料是否在另一個表中存在 第一種方案: select * from tb_a A where NOT EXISTS (select 1 from tb_b B wher

[資料庫] Navicat for MySQL觸發器更新和插入操作

一、觸發器概念        觸發器(trigger):監視某種情況,並觸發某種操作,它是提供給程式設計師和資料分析員來保證資料完整性的一種方法,它是與表事件相關的特殊的儲存過程,它的執行不是由程式呼叫,也不是手工啟動,而是由事件來觸發,例如當對一個表進行操作( ins

oracle常用命令--更新/修改資料update命令

更新/修改表資料 update 表名 set 欄位名1='修改後的值', 欄位名2='修改後的值' where id=1 例如: update customer set tel='12132',a

.net 三層構架下使用事務更新資料

//使用TransactionScope ,需要引用System.Transactions.dll using (TransactionScope scope = new TransactionS

oracle常用命令--更新/修改資料之alter命令

修改-欄位的資料型別–欄位資料的長度 alter table 表名 modify (欄位名 欄位型別(欄位長度)) 例如: alter table customer modify (addr

mysql資料庫插入時間日期資料異常com.mysql.jdbc.MysqlDataTruncation

今天在學習mybatis的時候學習到insert的時候發現一個錯誤,這個錯誤在查詢的時候不會出現 但是在新增的時候出現了 org.apache.ibatis.exceptions.Persist

MYSQL建立外來鍵失敗幾種情況記錄Can't create table不能建立

像這種不能建立一個.frm 檔案的報錯好像暗示著作業系統的檔案的許可權錯誤或者其它原因,但實際上,這些都不是的,事實上,這個mysql報錯已經被報告是一個mysql本身的bug並出現在mysql 開發者列表當中很多年了,然而這似乎又是一種誤導。 在很多例項中,這種錯誤的發生都是因為mysql一直以來都不能很

MySQL插入更新重複值】ON DUPLICATE KEY UPDATE用法

要插入的資料  與表中記錄資料的 惟一索引或主鍵中產生重複值,那麼就會發生舊行的更新 弊端:造成主鍵自增不連續。適合資料量不大的表。 ON DUPLICATE KEY UPDATE後面的條件 eg有如下表,僅主鍵存在UK(唯一)屬性: select * from Stude

MySQL 報錯:ERROR 2002 (HY000): Can't connect to local MySQL server through socket

一、錯誤現場還原: 下面我們通過三種方式來連線,然後觀察提示的錯誤資訊: 1、直接使用“mysql”命令,不帶主機名引數; 2、使用帶了主機名“localhost”引數的“mysql -h localhost”命令; 3、使用帶了主機名“127.0.

MYSQL服務無法啟動:InnoDB: .\ibdata1 can't be opened in read-write mode

今天在那做實驗倒騰mysql資料庫,後來發現服務無法啟動,檢視日誌報錯如下: 2015-01-07 17:48:54 9136 [ERROR] InnoDB: .\ibdata1 can't be opened in read-write mode 2015-01-07

git更新錯誤Can't update: no tracked branch

Can't update: no tracked branch No tracked branch configured for branch master. To make your branch track a remote branch call, for example,git branch --se