我想问一些事情。我想使用触发器添加新数据。来自多个数据库表的值数据,我想用“|”作为分隔符。例如“VALUE1 | VALUE2”,结果必须是christin |纽约
我的触发器代码示例:
begin
DECLARE value1 VARCHAR(50);
DECLARE value2 VARCHAR(50);
SELECT some_item INTO value1 FROM table1 WHERE id=NEW.id;
SELECT some_item2 INTO value2 FROM table2 WHERE id=NEW.id;
INSERT INTO my_table(id,new_value)values( NEW.id, value1 | value2);
end
我该怎么写我的代码?我没有任何错误,但value1和value2的结果是错误的。结果只是“value1 | value2”而不是“christin | new york”。
谢谢
我发现你想要连接两个字符串,不是吗?
-- you should use function CONCAT_WS
INSERT INTO my_table(id,new_value)values( NEW.id, CONCAT_WS('|', value1, value2) );
你可能错误地应用了qazxsw poi。
我希望您尝试通过begin
DECLARE value1 VARCHAR(50);
DECLARE value2 VARCHAR(50);
SELECT some_item INTO value1 FROM table1 WHERE id=NEW.id;
SELECT some_item2 INTO value2 FROM table2 WHERE id=NEW.id;
INSERT INTO my_table(id,new_value)values( NEW.id, concat(value1," | ",value2));
end
命令为变量赋值。如果是,请尝试这样做:
SELECT
假设SELECT some_item INTO @value1 FROM table1 WHERE id=NEW.id;
SELECT some_item2 INTO @value2 FROM table2 WHERE id=NEW.id;
和@value1
是脚本顶部定义的变量。