54 votes

SQL Remplir la table avec des données aléatoires

J'ai une table avec deux champs :

  1. id (UUID) qui est la clé primaire et
  2. description ( var255 )

Je veux insérer des données aléatoires avec une phrase SQL. J'aimerais que cette description soit quelque chose d'aléatoire.

PS : j'utilise PostgreSQL.

82voto

leonbloy Points 27119

Je ne sais pas exactement si cela correspond à l'exigence d'une "description aléatoire", et il n'est pas clair si vous souhaitez générer les données complètes : mais, par exemple, cela génère 10 enregistrements avec des identifiants consécutifs et des textes aléatoires :

   test=#  SELECT generate_series(1,10) AS id, md5(random()::text) AS descr;

     id |               descr
    ----+----------------------------------
      1 | 65c141ee1fdeb269d2e393cb1d3e1c09
      2 | 269638b9061149e9228d1b2718cb035e
      3 | 020bce01ba6a6623702c4da1bc6d556e
      4 | 18fad4813efe3dcdb388d7d8c4b6d3b4
      5 | a7859b3bcf7ff11f921ceef58dc1e5b5
      6 | 63691d4a20f7f23843503349c32aa08c
      7 | ca317278d40f2f3ac81224f6996d1c57
      8 | bb4a284e1c53775a02ebd6ec91bbb847
      9 | b444b5ea7966cd76174a618ec0bb9901
     10 | 800495c53976f60641fb4d486be61dc6
    (10 rows)

28voto

Maksim Dmitriev Points 515

Les éléments suivants ont fonctionné pour moi :

 create table t_random as select s, md5(random()::text) from generate_Series(1,5) s;

1voto

Bob Points 9217

Je suppose que phrase == déclaration? Vous pouvez utiliser perl ou plperl car perl a de bons générateurs de données aléatoires. Découvrez le module Perl CPAN Data::Random pour démarrer.

Voici un exemple de script perl pour générer des éléments aléatoires différents tirés de CPAN .

 use Data::Random qw(:all);

  my @random_words = rand_words( size => 10 );

  my @random_chars = rand_chars( set => 'all', min => 5, max => 8 );

  my @random_set = rand_set( set => \@set, size => 5 );

  my $random_enum = rand_enum( set => \@set );

  my $random_date = rand_date();

  my $random_time = rand_time();

  my $random_datetime = rand_datetime();

  open(FILE, ">rand_image.png") or die $!;
  binmode(FILE);
  print FILE rand_image( bgcolor => [0, 0, 0] );
  close(FILE);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X