![](/img/trans.png)
[英]create trigger on update to insert old values into other table in MYSQL
[英]MYSQL Trigger - update values in table from other table before insert
我正在嘗試在從另一個表插入之前更新值-這是我所擁有的:
2桌
hbrpg_geo{
...
id INT //id that needs to be written into hbrpg_person
zip VARCHAR(10) //contains postcode
...
}
hbrpg_person{
...
fk_postcode // initially it's filled with UK postcode - but trigger should change value to id of hbrpg_geo of matching postcode (hbrpg_geo.zip).
...
}
觸發:
...
BEGIN
DECLARE NP_VAR integer;
DECLARE OP_VAR TEXT;
SET OP_VAR = NEW.fk_postcode;
SET TE_VAR = OP_VAR;
SELECT hbrpg_geo.id INTO NP_VAR FROM hbrpg_geo WHERE hbrpg_geo.zip = OP_VAR;
SET NEW.fk_postcode = NP_VAR;
END
一切似乎都與以下工作不同:
SET OP_VAR = NEW.fk_postcode;
如果將NEW.fk_postcode替換為帶引號的有效英國郵政編碼(即:“ W1 3XX”),它將正常工作,並且觸發器將hkpg_geo表的ID替換為字段fk_postcode。
我做錯了什么? 如何將NEW.fk_postcode的值分配給剛剛聲明的變量?
您具有分配順序:
SET OP_VAR = NEW.fk_postcode;
. . .
SET NEW.fk_postcode = NP_VAR;
列new.fk_postcode
具有相同的類型。 但是這些列分別是text
和integer
。
您需要修復類型不兼容。 我的猜測是fk_postcode
實際上是一個整數,並且與值(將是字符串)分開。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.