【问题标题】:Stored iterative procedure not inserting into table存储的迭代过程不插入到表中
【发布时间】:2016-09-05 15:04:33
【问题描述】:

我使用了两个过程,一个定义游标,第二个将第一个结果插入到临时表中,然后再插入到最终表中。我已经为游标测试了我的选择查询定义,它正在返回我想要的结果;但是,我的临时表中没有插入任何值。

迭代过程

CREATE PROCEDURE procIteration ()
BEGIN
DECLARE done BOOLEAN DEFAULT FALSE;
DECLARE TaxonName varchar(170);
DECLARE RankID varchar(170);
DECLARE ParentID varchar(170);
DECLARE TaxonID varchar(170);
DECLARE cur CURSOR FOR SELECT child.SciName, RankID, parent.parentID, child.tid FROM taxa child LEFT JOIN (SELECT MAX(parenttid) as parentID, SciName, taxaenumtree.tid FROM taxaenumtree, taxa WHERE taxa.tid = taxaenumtree.tid GROUP BY taxaenumtree.tid) AS parent ON parent.tid = child.tid WHERE rankID = 10;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done := TRUE;

OPEN cur;

testLoop: LOOP
    FETCH cur INTO TaxonName, RankID, ParentID, TaxonID;
    IF done THEN 
        LEAVE testLoop;
    END IF;
    CALL taxon_reclamation(TaxonName, RankID, ParentID, TaxonID);
END LOOP testLoop;

CLOSE cur;
END //

插入过程

CREATE PROCEDURE taxon_reclamation (IN TaxonNameIn VARCHAR(170), IN RankIDIn VARCHAR(170), IN ParentIDIn VARCHAR(11), IN TaxonIDIn VARCHAR(170)) 
BEGIN
DECLARE TaxonName varchar(170);
DECLARE RankID varchar(170);
DECLARE ParentID varchar(170); 
DECLARE TaxonID varchar(170);
SET TaxonName = TaxonNameIn;
SET RankID = RankIDIn;
SET TaxonID = TaxonIDIn;
SET ParentID = ParentIDIn;

INSERT INTO taxon_reclamation(TaxonID, FullName, Name, RankID, ParentID, TaxonTreeDefID, TaxonTreeDefItemID)
VALUES (TaxonID, TaxonName, TaxonName, RankID, ParentID, 2, 1);
END //

我应该得到一个临时表,其中包含分类单元的名称、分类单元 ID、该分类单元的父 ID 及其 rankID(科、属、种等)。

【问题讨论】:

    标签: mysql sql parent-child procedure


    【解决方案1】:

    您应该更改变量的名称,使其与列名不同。

    【讨论】:

    • 嗨@mrek 我改变了它们,这样就不会混淆我指的是哪个变量或列,但仍然得到相同的结果,没有插入。
    • 嗨@Vaughn,好的(这不仅仅是混淆,它只会导致错误)。你能粘贴当前的代码吗?您确定更改了变量名 RankId 和 ParentId 吗?没有错误信息吗?可以手动执行call taxon_reclamation('test','test', 'test', 'test')吗?它会插入那个测试行吗?
    猜你喜欢
    • 2014-05-03
    • 2013-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多