![](/img/trans.png)
[英]How to copy a row and insert in same table with a autoincrement field in MySQL?
[英]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.