我试图理解为什么当我尝试运行一个盆插入语句来测试它时,这个触发器一直给我一个关于无效使用分组函数的错误。
我尝试过这个来弄清楚我做错了什么,但错误仍然保持不变。错误1111
DROP TRIGGER a_num;
DELIMITER //
CREATE TRIGGER a_num BEFORE INSERT ON test_a
FOR EACH ROW BEGIN
DECLARE last INT DEFAULT 0;
INSERT INTO test_b SET full_name = CONCAT_WS(' ', NEW.f_name, NEW.l_name);
SET last = COUNT(id);
UPDATE test_b SET number = CONCAT_WS('-', last, LEFT(NEW.f_name, 2), LEFT(NEW.f_name, 2)) WHERE id = last;
END;
//
请不要介意使用或构造不良我是个新手。
感谢。
答案 0 :(得分:0)
我认为应该是 -
DROP TRIGGER a_num;
DELIMITER //
CREATE TRIGGER a_num BEFORE INSERT ON test_a
FOR EACH ROW BEGIN
DECLARE last INT DEFAULT 0;
INSERT INTO test_b SET full_name = CONCAT_WS(' ', NEW.f_name, NEW.l_name);
SET last = LAST_INSERT_ID();
UPDATE test_b SET number = CONCAT_WS('-', last, LEFT(NEW.f_name, 2), LEFT(NEW.f_name, 2)) WHERE id = last;
END;
//
答案 1 :(得分:0)
您能为test_a和您正在使用的INSERT语句提供CREATE语句吗?
在MySQL Workbench中,如果右键单击test_a,请转到Copy to Clipboard..Create Statement,将发送表定义。
您是否有理由插入然后更新同一记录?你能把它合并成一个插页吗?