0
私は、すべてのテーブルをスキーマのすべてのテーブルに繰り返し書き込んで、すべてのテーブルをさらに変更しようとしています。私はそれを呼び出すときしかし、それは、このメッセージを返し、私は理由を理解することはできません。MySQLのプロシージャが正常に動作しません。
エラーコード:1329データなし - ゼロ行が選択された、または彼女は、プロシージャのコード自体である
を処理し、フェッチ:
をdelimiter #
drop procedure if exists myschema.create_triggers #
create procedure myschema.create_triggers()
begin
declare tname CHAR(255);
declare result VARCHAR(255);
declare cTab cursor for select table_name from information_schema.tables where table_schema = 'myschema';
open cTab;
tLoop: LOOP
fetch cTab into tname;
SET result = CONCAT(result, tname, ',');
end LOOP tLoop;
select result;
end #
カーソルクエリは正常に動作しますが、なぜこの手順では期待通りの結果が得られないのですか?
私のコードにこれを追加しましたが、問題は解決されません。カーソルクエリが13行を返す間は何もしません。 nullレスポンスではなく、コロンで区切られたすべてのテーブルを参照することを期待しています。カーソルクエリの応答:13行が返されました – smoczyna
新しいバージョンのプロシージャを質問に編集してください。 – fancyPants
私はこの行が問題を引き起こすと信じています: "SET result = CONCAT(result、tname、 '、');"ループ内に "select tname"を置くと、テーブル名を含む13の結果が返されるためです。最終的なステップはこの行をトリガー作成句に置き換えるので、実際に私が望むことをしています。あなたの助けをありがとう、私はループ内のトリガー作成と闘うと思うが、それは別の話です。 – smoczyna