【发布时间】:2013-11-28 06:25:06
【问题描述】:
我的程序如下:
CREATE PROCEDURE `Teleport` (INOUT sel VARCHAR(256), INOUT tar VARCHAR(256))
BEGIN
DECLARE self VARCHAR(100);
DECLARE target VARCHAR(100);
DECLARE tarpos VARCHAR(100);
SET self = (SELECT PlayerUID FROM player_data WHERE PlayerName = sel LIMIT 1);
SET target = (SELECT PlayerUID FROM player_data WHERE PlayerName = tar LIMIT 1);
SET tarpos = (SELECT Worldspace FROM character_data WHERE PlayerUID = target LIMIT 1);
UPDATE character_data SET Worldspace = tarpos WHERE PlayerUID = self;
END
我现在想调用程序,使用 CALL Teleport('Player A', 'Player B');
调用查询运行时,->“OUT or INOUT argument 1 for routine test.Teleport is not a variable or NEW pseudo-variable in BEFORE trigger”是结果。
【问题讨论】:
-
这真的不清楚你在问什么。你是在问如何调用存储过程吗?或者如何创建一个?
-
LIMIT 1应该在括号内。 -
如何创建,我想创建“东西”,用户将运行过程/函数/查询,并提示用户输入。然后将其存储到两个变量中。
-
我不认为 MySQL 可以提示用户输入。用户在调用过程时应提供参数。
-
CALL Teleport('input1', 'input2');