如何通过添加另一列的前缀来创建触发器以更新列

Posted

技术标签:

【中文标题】如何通过添加另一列的前缀来创建触发器以更新列【英文标题】:how to create trigger to update a column by adding prefix of another column 【发布时间】:2015-11-18 05:34:31 【问题描述】:

我需要通过添加前缀“A|”来更新prefixed_sku 列对于 sku 列上的每次插入或更新

SKU------------prefixed_sku HP3001-------- A|HP3001 HS1001-------- A|HP3001

我尝试阅读很多文章,但我不是程序员,所以无法自己弄清楚。这是我的订单数据库。谢谢

table name: orders
column name: sku

【问题讨论】:

清理措辞并添加一些格式 【参考方案1】:

添加后插入和更新后触发器以返回并更新订单表中的 prefixed_sku 列:

DELIMITER $$
CREATE TRIGGER after_order_insert
    AFTER INSERT ON orders
    FOR EACH ROW 
BEGIN
    UPDATE orders
    SET prefix_sku=CONCAT('A|',sku)
    WHERE sku=NEW.sku
END$$
DELIMITER ;

【讨论】:

DELIMITER $$ CREATE TRIGGER after_azt_insert AFTER INSERT ON azt FOR EACH ROW BEGIN UPDATE azt SET TSKU=CONCAT('A|',sku) WHERE sku=NEW.sku END$$ DELIMITER ; 我根据我的表名 (azt) 和前缀列 (TSKU) 更改了它,它给出了这个错误 #1064 - 你的 SQL 语法有错误;检查与您的 mysql 服务器版本相对应的手册,以在第 8 行的“END”附近使用正确的语法----感谢您的帮助 sku & TSKU(都在同一张桌子上)

以上是关于如何通过添加另一列的前缀来创建触发器以更新列的主要内容,如果未能解决你的问题,请参考以下文章

Postgres 创建触发器函数以在允许插入之前将值从一列复制到另一列

如何通过重复值“另一列的大小”次来创建数组列?

ORA-04091“更新后”触发器错误,如何解决?

熊猫通过根据另一列的值添加列级别来重塑数据框[重复]

更新另一列时自动更新sql列

如何根据另一列的单元格值由其他列动态更新A列