Maison  >  Article  >  base de données  >  Comment remplir une table MySQL avec des nombres aléatoires à l'aide de procédures stockées ?

Comment remplir une table MySQL avec des nombres aléatoires à l'aide de procédures stockées ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-25 07:56:02317parcourir

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

Remplir la table MySQL avec des nombres aléatoires à l'aide de procédures stockées

Énoncé du problème

Créer une table MySQL nommée rand_numbers avec une seule colonne nommée nombre de type INT . Remplissez la table avec 1111 nombres aléatoires entre 2222 et 5555.

Solution

Pour créer et remplir la table rand_numbers à l'aide de procédures stockées MySQL, suivez ces étapes :

1. Créez le tableau

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

2. Créez la procédure stockée

Définissez une procédure stockée appelée InsertRand qui boucle et insère des valeurs aléatoires dans la table :

<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. Appelez la procédure stockée

Appelez la procédure InsertRand avec le nombre de lignes souhaité, la valeur minimale et la valeur maximale :

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

Exemple

Pour insérer 600 valeurs aléatoires comprises entre 1200 et 8500 dans la table rand_numbers :

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

Réutilisation de la procédure

Vous pouvez réutiliser la procédure InsertRand pour générer des valeurs aléatoires pour différentes plages et tables en l'appelant avec différents paramètres .

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn