【发布时间】:2014-02-25 02:17:44
【问题描述】:
我有几个 MySQL 表,它们维护记录的树形结构。每条记录都有一个 ID 和一个父字段。在给定记录 ID 的情况下,我想编写一个存储函数来获取父 ID。
以下是我的第一次尝试,不正确。我的问题是我不知道如何使用变量表名。
delimiter $$
create function parent(
tableName varchar(15),
nodeId int
) returns int
begin
declare p int;
select parent into p from tableName where id=nodeId;
return p;
end$$
请帮忙。谢谢!
【问题讨论】:
-
具有相同结构的多个表是个坏主意。您应该将它们存储在一个表中,并带有一个指定“表名”的附加列。
-
确实如此,但这是用于研究绩效评估的。基本上,有几个结构相同但参数不同的表。我使用这些表来衡量我的算法的性能。
-
@Jeff 但是,一旦混合了动态 SQL,您的所有测量都将关闭
-
怎么样?它只是一个表名的变量。