generate multiple random numbers in sqlite generate multiple random numbers in sqlite sqlite sqlite

generate multiple random numbers in sqlite


create temp table rtab (x integer primary key, v default (random()));create temp trigger rtrig before insert on rtabwhen new.x > 0 begin   insert or replace into rtab (x) values (new.x - 1); end;PRAGMA recursive_triggers = on;insert into rtab (x) values (9);sqlite> select * from rtab;0|-67424685212718793231|-80203641608219739042|45675591164632082883|53302779958389895534|-90003580595511412765|-71483070651403349216|81565125607931813517|-107510766813230448|-73358346517320277669|6837665741304560539sqlite> 


Didn't try, but maybe this? Given any table of at least N rows,

SELECT RANDOM() FROM anytable LIMIT ?

replacing ? with N.


If you need millions of rows and have shell/bash, it might be good enough this way:

echo -e '.import "/dev/stdin" mytable\n'; sleep 0.5 ; for i in {1..10000000}; do echo $RANDOM; done) | sqlite3 my.db

The sleep step is critical to prevent sqlite from reading the first numbers as SQL commands due to buffering. YMMV