このスクリプトの何が問題なのかわかりません
BEGIN
DECLARE crs INT DEFAULT 0;
WHILE crs < 10 DO
INSERT INTO `continent`(`name`) VALUES ('cont'+crs)
SET crs = crs + 1;
END WHILE;
END;
テーブル大陸に10個の値を挿入したいのですが、2行目にエラーがあります。
このスクリプトの何が問題なのかわかりません
BEGIN
DECLARE crs INT DEFAULT 0;
WHILE crs < 10 DO
INSERT INTO `continent`(`name`) VALUES ('cont'+crs)
SET crs = crs + 1;
END WHILE;
END;
テーブル大陸に10個の値を挿入したいのですが、2行目にエラーがあります。
MySQL は、ストアド プロシージャ コードの無名ブロックの実行をサポートしていません。
そのコードを含むストアド プロシージャを作成し、それを呼び出す必要があります。
また、挿入ステートメントの最後にセミコロンがありませんでした。私はそれを修正しました。+ の代わりに concat() を使用して名前を生成したい場合もありますが、その変更はあなたに任せます。
プロシージャを作成します。
DELIMITER $$
DROP PROCEDURE IF EXISTS insert_ten_rows $$
CREATE PROCEDURE insert_ten_rows ()
BEGIN
DECLARE crs INT DEFAULT 0;
WHILE crs < 10 DO
INSERT INTO `continent`(`name`) VALUES ('cont'+crs);
SET crs = crs + 1;
END WHILE;
END $$
DELIMITER ;
プロシージャを呼び出します。
CALL insert_ten_rows();