簡體   English   中英

如何根據自動增量字段為字段值編寫MySQL INSERT觸發器?

[英]How to write MySQL INSERT trigger for field value based on autoincrement field?

MySQL的。 我有自動增量主鍵字段的表:

CREATE TABLE myTable (
 id INT AUTO_INCREMENT PRIMARY KEY,
 field VARCHAR(45)
);

我想根據主鍵值自動寫一些字段。 這不起作用:

CREATE TRIGGER `myTable_AFTER_INSERT` AFTER INSERT ON `myTable` FOR EACH ROW
BEGIN
 UPDATE myTable SET field=CONCAT(NEW.id,"T") WHERE id=NEW.id;
END;

在這種情況下,我從MySQL收到錯誤:

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

這也行不通:

CREATE TRIGGER `myTable_BEFORE_INSERT` BEFORE INSERT ON `myTable` FOR EACH ROW
BEGIN
 SET NEW.field=CONCAT(NEW.id,"T");
END;

在這種情況下,NEW.did未定義。

如何根據自動增量ID將某些值存儲到field 感謝名單!

它將與下一個觸發器一起使用:

CREATE TRIGGER `myTable_BEFORE_INSERT` BEFORE INSERT ON `myTable` FOR EACH ROW
BEGIN
    SET @new_field = "";
    SELECT AUTO_INCREMENT INTO @new_field
        FROM information_schema.tables
        WHERE table_name = 'myTable'
        AND table_schema = DATABASE();
    SET NEW.field=CONCAT("A",@new_field);
END;

暫無
暫無

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

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