Solución:
Haciendo trucos, esto insertará hasta 2048 filas aleatorias de una sola vez, decida cuántas estableciendo el límite;
INSERT INTO TEST (x,y,z)
SELECT RANDOM(), RANDOM(), RANDOM()
FROM (SELECT * FROM (
(SELECT 0 UNION ALL SELECT 1) t2,
(SELECT 0 UNION ALL SELECT 1) t4,
(SELECT 0 UNION ALL SELECT 1) t8,
(SELECT 0 UNION ALL SELECT 1) t16,
(SELECT 0 UNION ALL SELECT 1) t32,
(SELECT 0 UNION ALL SELECT 1) t64,
(SELECT 0 UNION ALL SELECT 1) t128,
(SELECT 0 UNION ALL SELECT 1) t256,
(SELECT 0 UNION ALL SELECT 1) t512,
(SELECT 0 UNION ALL SELECT 1) t1024,
(SELECT 0 UNION ALL SELECT 1) t2048
)
) LIMIT 246;
Puede utilizar una consulta recursiva.
Esta consulta genera una tabla con 1000 números aleatorios:
CREATE TABLE test(field1);
INSERT INTO test
WITH RECURSIVE
cte(x) AS (
SELECT random()
UNION ALL
SELECT random()
FROM cte
LIMIT 1000
)
SELECT x FROM cte;
Estoy de acuerdo con Stenci, puedes usar una consulta recursiva. Desde SQLite Release 3.8.3 en 2014-02-03 ha agregado soporte para CTE. La siguiente consulta genera la tabla que el OP ha solicitado con 1000 números aleatorios:
CREATE TABLE test (
id INTEGER PRIMARY KEY NOT NULL,
x REAL NOT NULL,
y REAL NOT NULL,
z REAL NOT NULL
);
INSERT INTO test
WITH RECURSIVE
cnt( id, x, y, z) AS (
VALUES(1 , random(), random(), random()) UNION ALL
SELECT id+1,random(),random(), random() FROM cnt WHERE ID<1000)
select * from cnt;
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)