我试图在触发器内创建一个函数但由于某种原因我无法保存。 MySQL一直给我错误1064.
DELIMITER //
CREATE FUNCTION whichTable(vanID VARCHAR(10))
RETURNS VARCHAR(10)
BEGIN
DECLARE tableName VARCHAR(10);
IF vanID = 'JAX 04' THEN SET tableName = 'JAX_01';
ELSEIF vanID = 'ORL 01' THEN SET tableName = 'ORL_01';
END IF;
RETURN tableName;
END //
DELIMITER;
INSERT INTO whichTable(NEW.b) (`indx`, `b`, `c`, `d`) VALUES (NULL, NEW.b, NEW.c, NEW.d);
答案 0 :(得分:1)
您无法将该函数评估为INSERT
语句的表名。
但是在触发器中你可以使用相同的条件:
IF NEW.b = 'JAX 04' THEN
INSERT INTO JAX_01 (`indx`, `b`, `c`, `d`) VALUES (NULL, NEW.b, NEW.c, NEW.d);
ELSEIF NEW.b = 'ORL 01' THEN
INSERT INTO ORL_01 (`indx`, `b`, `c`, `d`) VALUES (NULL, NEW.b, NEW.c, NEW.d);
END IF;