2012-04-13 8 views
2

私はIDEとしてHeidiSqlでMySqlを使用しています。私は、次のトリガーがあります。このトリガーには何が問題なのですか?

BEGIN 
declare blobpassed blob(50); 
declare gid integer(10); 
select lt.groupid into gid, GROUP_CONCAT(passed) into blobpassed from latest_tests lt 
    left join testcaseresults tcr on tcr.testcaseresultsid = lt.tcrid 
    left join grouping g on g.groupid = lt.groupid 

    where lt.tcrid = NEW.testcaseresultsid 
group by lt.groupid; 

if blobpassed REGEXP '[1,]+' THEN 
update grouping g 
set g.haspassed = 1 
where g.groupid = gid; 
END; 

をしかし、それはGROUP_CONCAT(passed) into blobpassed from latest_tests lt周りに構文エラーがあると言って続けています。通常、これらのエラーは、その前に何か間違っていることを意味します(この場合、gidで)。でも、私が間違っていることは分かりません。

誰かが私に間違っていることを教えてもらえますか?ありがとう。 SELECT ... INTO

+0

トリガの残りの部分にこのコードを使用していますか? 'CREATE TRIGGER trigget_name' ...' delimiter' .... 'delimiter;'? – Lion

+0

HeidiSQLがそれを処理します。 – Nacht

答えて

0

部「に、」変数リストと、一度だけ書かれているので、正しいクエリは次のようになります。

select lt.groupid, GROUP_CONCAT(passed) into gid, blobpassed from latest_tests lt 
    left join testcaseresults tcr on tcr.testcaseresultsid = lt.tcrid 
    left join grouping g on g.groupid = lt.groupid 
    where lt.tcrid = NEW.testcaseresultsid 

一部は、クエリの後に配置することができる「へ」:

select lt.groupid, GROUP_CONCAT(passed) from latest_tests lt 
    left join testcaseresults tcr on tcr.testcaseresultsid = lt.tcrid 
    left join grouping g on g.groupid = lt.groupid 
    where lt.tcrid = NEW.testcaseresultsid 
    into gid, blobpassed