ホームページ  >  記事  >  データベース  >  ストアド プロシージャを使用して MySQL テーブルに乱数を設定するにはどうすればよいですか?

ストアド プロシージャを使用して MySQL テーブルに乱数を設定するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-25 07:56:02317ブラウズ

How to Populate a MySQL Table with Random Numbers Using Stored Procedures?

ストアド プロシージャを使用して MySQL テーブルに乱数を設定する

問題ステートメント

タイプ INT のnumber という名前の単一のカラムを持つ rand_numbers という名前の MySQL テーブルを作成します。 2222 ~ 5555 の範囲の 1111 個の乱数をテーブルに入力します。

解決策

MySQL ストアド プロシージャを使用して rand_numbers テーブルを作成し、データを入力するには、次の手順に従います。

1.テーブル

<code class="sql">CREATE TABLE rand_numbers (
    number INT NOT NULL
) ENGINE = MYISAM;</code>

2 を作成します。ストアド プロシージャを作成します

ループしてランダムな値をテーブルに挿入する InsertRand というストアド プロシージャを定義します。

<code class="sql">DELIMITER $$
CREATE PROCEDURE InsertRand(IN NumRows INT, IN MinVal INT, IN MaxVal INT)
BEGIN
    DECLARE i INT;
    SET i = 1;
    START TRANSACTION;
    WHILE i <= NumRows DO
        INSERT INTO rand_numbers VALUES (MinVal + CEIL(RAND() * (MaxVal - MinVal)));
        SET i = i + 1;
    END WHILE;
    COMMIT;
END$$
DELIMITER ;</code>

3.ストアド プロシージャを呼び出します

必要な行数、最小値、最大値を指定して InsertRand プロシージャを呼び出します:

<code class="sql">CALL InsertRand(1111, 2222, 5555);</code>

600 を挿入するには1200 ~ 8500 のランダム値を rand_numbers テーブルに追加します:

<code class="sql">CALL InsertRand(600, 1200, 8500);</code>

プロシージャの再利用

InsertRand プロシージャを再利用して、さまざまなパラメータを指定して呼び出すことで、さまざまな範囲とテーブルのランダムな値を生成できます。 .

以上がストアド プロシージャを使用して MySQL テーブルに乱数を設定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。