Ecco qualcosa di simile che può essere utilizzato direttamente come espressione:
lower(hex(randomblob(4))) || '-' || lower(hex(randomblob(2))) || '-4' || substr(lower(hex(randomblob(2))),2) || '-' || substr('89ab',abs(random()) % 4 + 1, 1) || substr(lower(hex(randomblob(2))),2) || '-' || lower(hex(randomblob(6)))
per esempio da passare come valore predefinito per la colonna:
sqlite> create table "table" (
"id" char(36) default (lower(hex(randomblob(4))) || '-' || lower(hex(randomblob(2))) || '-4' || substr(lower(hex(randomblob(2))),2) || '-' || substr('89ab',abs(random()) % 4 + 1, 1) || substr(lower(hex(randomblob(2))),2) || '-' || lower(hex(randomblob(6)))),
"data" varchar(255), primary key ("id")
);
sqlite> insert into "table" ("data") values ('foo');
sqlite> insert into "table" ("data") values ('bar');
sqlite> select * from "table";
947efcc9-4212-442a-b68c-eb6fbd8a7128|foo
a2c3857b-1eb4-40bd-aed2-6e8d68cc2ab8|bar
fonte
2017-01-14 12:01:09
grazie per il vostro aiuto. Ho generato UUID per un'applicazione Android come questa String sUUiDValue = UUID.randomUUID(). ToString(); e quindi inserito nella tabella ... – amy