簡體   English   中英

如何使用插入觸發器后更新表字段?

[英]How to update a table field using after insert trigger?

我想用 MD5() 更新插入的行字段名稱是“hash_code”。

DELIMITER
    //
CREATE TRIGGER `make_hash2` AFTER  INSERT ON
    `newtable` FOR EACH ROW
BEGIN
    DECLARE
        _id INTEGER ;
    SELECT
        id
    INTO _id
FROM
    `newtable`
ORDER BY `id`
DESC
LIMIT 1;

 

UPDATE
    `newtable`
SET
    `hash_code` = MD5(_id)
WHERE
    id = _id ;
END

我嘗試使用以下代碼,但在插入時拋出以下錯誤。

#1442 - 無法更新存儲函數/觸發器中的表“newtable”,因為它已被調用此存儲函數/觸發器的語句使用

如果您希望hash_code是 id 的md5() hash,您可以使用生成的列:

alter table newtable add column hash_code varchar(32) as
     (md5(id))

是一個 db<>fiddle。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM