# create database my $dbh = P->handle('sqlite:/path/to/db.sqlite'); # create memory databse my $dbh = P->handle('sqlite:');
"unix_timestamp" INTEGER NOT NULL DEFAULT(STRFTIME('%s', 'NOW')) "unix_timestamp_hires" FLOAT NOT NULL DEFAULT(time_hires())
"timestamp" TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP "timestamp_with_milliseconds" TEXT NOT NULL DEFAULT(STRFTIME('%Y-%m-%d %H:%M:%f', 'NOW'))
CAST(uuid_generate_v1mc() AS BLOB) CAST(uuid_generate_v4() AS BLOB)
SQLite will NOT use the second column of an index if the first column was an inequality expression (eg. customer > 33).
If you create two separate indices, only one of them will be used, the other expression will be evaluated on the result set generated by the first. (on an Oracle, it could execute the two index search and intersect the result sets, if optimization is cost based and certain criteria meets, but thats a rare case).