snippetsqlMinor
How do I specify a timeout in sqlite3 from the command-line?
Viewed 0 times
thelinesqlite3timeouthowcommandfromspecify
Problem
I have a couple basic scripts that kick out a little information while my sqlite3 DB is being populated, but about half the time the command instantly fails:
If I add
$ sqlite3 outgoing.db "select * from edges where worker is not null;"
Error: database is locked
$ sqlite3 outgoing.db "select * from edges where worker is not null;"
Error: database is locked
$ sqlite3 outgoing.db "select * from edges where worker is not null;"
1014->9000|1014|9000||-1.0|2
1014->9001|1014|9001||-1.0|2
...If I add
.timeout 1; to the beginning of the command I just get a syntax error; how do I pass sqlite the special . parameters non-interactively via the command-line?Solution
You can do this by using an init file.
At the prompt:
With some shells (on Linux at least, not very portable), you can avoid the need for a proper file with process substitution if that's a problem:
The extra output line ("Loading resources from ...") doesn't get printed if the output is redirected to a file or pipe, or to the
init.sql (note that the timeout value is in milliseconds - 1 is rather short):.timeout 1000At the prompt:
$ sqlite3 -init init.sql outgoing.db "select * from edges where worker is not null;"
Loading resources from init.sql
# 1 second pause
Error: database is lockedWith some shells (on Linux at least, not very portable), you can avoid the need for a proper file with process substitution if that's a problem:
$ sqlite3 -init <(echo .timeout 1000) your.db "your sql;"The extra output line ("Loading resources from ...") doesn't get printed if the output is redirected to a file or pipe, or to the
.output file if you specified one in your init file.Code Snippets
.timeout 1000$ sqlite3 -init init.sql outgoing.db "select * from edges where worker is not null;"
Loading resources from init.sql
# 1 second pause
Error: database is locked$ sqlite3 -init <(echo .timeout 1000) your.db "your sql;"Context
StackExchange Database Administrators Q#47919, answer score: 6
Revisions (0)
No revisions yet.