1

目標

CATEGORYID完了するまで、挿入1ごとに増やします。5WHILE

シナリオ

BEGIN
    DECLARE MaxAnnounces INT UNSIGNED DEFAULT 5;
    DECLARE Counter INT UNSIGNED DEFAULT 1;
    DECLARE NewWeek INT UNSIGNED DEFAULT 
            (SELECT WEEKID FROM announces_empire ORDER BY WEEKID DESC LIMIT 1);

    START TRANSACTION;
    WHILE Counter < MaxAnnounces DO
        INSERT INTO announces 
        (NAME, CAPTION, DESCRIPTION, IMAGEURL, LINK, CATEGORYID, WEEKID, YEARID)
        VALUES 
            ("Hello!", 
             "Click here.",
             "Can you tell me your name?",
             "example.com/img.jpg",
             "google.com",
             -- HERE I WANT TO INCREASE BY 1 EACH 5 INSERTS --
             40,
             2013);
        SET Counter = Counter + 1;
    END WHILE;
    COMMIT;
END

問題

構文がわかりません。

問題のハイライト

-- HERE I WANT TO INCREASE BY 1 EACH 5 INSERTS --私はこの方法で何かをしようとしていたのではなく:

IF(Counter % 5, x + 1, 1),

xまだ定義していない変数はどこにありますか。

ギエルメ、どうしてこれを使えないのIF?何が起こるのですか?このようにすると、挿入される値は常に1.

誰か私に光をくれませんか?

4

2 に答える 2

1

中の直後とか、最初とかそういうのかな?

IF Counter % 5
BEGIN
    X = X + 1
END

挿入では、この変数を使用します。X を宣言することを忘れないでください。

于 2013-10-17T20:55:10.520 に答える