web-dev-qa-db-fra.com

Insertion de 10000 nouvelles lignes?

Vraisemblablement, il existe une solution simple et simple. Je veux créer 10000 nouvelles lignes - qui sont numérotées séquentiellement sans données par ligne (sauf l'ID numéroté séquentiellement). J'ai utilisé:

INSERT INTO bins (id)
VALUES (1)

pour créer une seule ligne avec l'ID "1"

Comment créer 10000 lignes avec le numéro d'identification correspondant?

Version: PostgreSQL 9.5.5

9
Andrew

Vous pouvez utiliser la fonction de retour generate_series() set:

INSERT INTO bins (id) 
SELECT g.id
FROM generate_series(1, 10000) AS g (id) ;
14
ypercubeᵀᴹ

Avec la fonction GENERATE_SERIES () de PostgreSQL, c'est un jeu d'enfant! Ces fonctions sont très puissantes et méritent d'être explorées!

CREATE TABLE bins  AS 
SELECT * FROM GENERATE_SERIES(1, 10) AS id;

SELECT 10
Time: 294.351 ms

Alors:

test=# select * from bins;
 id 
----
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
(10 rows)

Time: 59.766 ms
test=# 

et:

test=# \d bins;
                Table "public.bins"
 Column |  Type   | Collation | Nullable | Default 
--------+---------+-----------+----------+---------
 id     | integer |           |          | 

test=# 
3
Vérace