日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 触发器计算总价,mysql’插入’触发器根据其他字段计算字段

發布時間:2023/12/3 数据库 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 触发器计算总价,mysql’插入’触发器根据其他字段计算字段 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我正在嘗試創建一個觸發器,它將根據用戶輸入的lat / lng列更新GEOMETRY列.我的觸發器看起來像這樣 –

CREATE TRIGGER `tbl.foo`

AFTER INSERT ON `tbl` FOR EACH ROW

BEGIN

UPDATE tbl

SET coord = Point(lng, lat)

WHERE id = NEW.id;

END

但是,當我插入一個帶有lng,lat值的新行時,我收到以下錯誤 –

ERROR 1442 (HY000): Can’t update table ‘tbl’ in stored function/trigger because it is already used by statement which invoked this stored function/trigger.

我可以不創建這樣的觸發器嗎?如果沒有,自動化的方法是什么?

解決方法:

嘗試使用BEFORE INSERT觸發器并修改所需的值,例如 –

CREATE TRIGGER trigger1

BEFORE INSERT

ON table1

FOR EACH ROW

BEGIN

SET NEW.column1 = 'another value';

END

編輯

CREATE TABLE table_test_trigger (

id INT(11) NOT NULL AUTO_INCREMENT,

a INT(11) DEFAULT NULL,

b INT(11) DEFAULT NULL,

c INT(11) DEFAULT NULL,

PRIMARY KEY (id)

);

DELIMITER $$

CREATE TRIGGER trigger1

BEFORE INSERT

ON table_test_trigger

FOR EACH ROW

BEGIN

SET NEW.c = NEW.a + NEW.b;

END

$$

DELIMITER ;

INSERT INTO table_test_trigger(a, b) VALUES (10, 5);

SELECT * FROM table_test_trigger;

+----+------+------+------+

| id | a | b | c |

+----+------+------+------+

| 1 | 10 | 5 | 15 |

+----+------+------+------+

標簽:sql,mysql,triggers

來源: https://codeday.me/bug/20190826/1734299.html

總結

以上是生活随笔為你收集整理的mysql 触发器计算总价,mysql’插入’触发器根据其他字段计算字段的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。