我有两个表,tbl_stock和tbl_stockEntry,这两个表是相同的。
它们具有以下字段: 仓库 品种 品种 数量
当在tbl_stockEntry表中输入一个条目时,我希望它要么更新tbl_stock表中的匹配条目,要么在没有匹配条目的情况下创建一个新条目。
但是我需要它匹配三个领域,仓库,品种和品种。
这是我创建条目的触发器,但是如果找不到任何记录,我似乎无法使它插入记录。
package main
import (
"encoding/binary"
"fmt"
)
func main() {
a := [...]int8{2, 3, 5, 7, 11} // Array
s := []int64{2, 3, 5, 7, 11} // Slice
z := []int32{} // Even empty things
fmt.Println(binary.Size(a)) // 5
fmt.Println(binary.Size(s)) // 40
fmt.Println(binary.Size(z)) // 0
}
我已经尝试过了,但是没有用:
BEGIN
UPDATE tbl_stock
SET quantity = quantity + NEW.quantity
WHERE vegetableCultivar = NEW.vegetableCultivar
AND warehouse = NEW.warehouse;
END
如果有人知道我将如何实现这一目标,我将非常感谢您的帮助。
答案 0 :(得分:1)
好,这是可行的:
BEGIN
UPDATE tbl_stock
SET quantity = quantity + NEW.quantity
WHERE vegetableCultivar = NEW.vegetableCultivar
AND warehouse = NEW.warehouse;
IF ROW_COUNT() = 0 THEN
INSERT INTO tbl_stock (warehouse, vegetableCultivar, vegetableVariety, quantity)
values (NEW.warehouse, NEW.vegetableCultivar, NEW.vegetableVariety, NEW.quantity);
end if;
END