SQLite User Forum

object name reserved for internal use: sqlite_parameters
Login

object name reserved for internal use: sqlite_parameters

(1) By anonymous on 2021-04-14 10:28:15 [link] [source]

On running

.param init

A tables named sqlite_parameters is created in the temp database.

Running the script

CREATE TABLE temp.sqlite_parameters(
  key TEXT PRIMARY KEY,
  value ANY
) WITHOUT ROWID;

for this table generates the error, see Title above.

Is there a way to initialize temp.sqlite_parameters using an SQL statement (rather than using the SQLite CLI's .param init)?

(2) By Stephan Beal (stephan) on 2021-04-14 10:50:25 in reply to 1 [link] [source]

Is there a way to initialize temp.sqlite_parameters using an SQL statement

i'm unable to find a citation but recall reading somewhere that the prefix sqlite_ is reserved for tables created by sqlite.

(3) By Larry Brasfield (larrybr) on 2021-04-14 11:51:42 in reply to 1 [link] [source]

Posts 9 and 13 in this thread show what needs to be done so that you can subject that table to your SQL.

(4) By anonymous on 2021-04-14 12:12:31 in reply to 3 [link] [source]

Thank you. 9 works for me.

Do I need to run

PRAGMA writable_schema = 0;

after creating temp.sqlite_parameters?

(5) By Larry Brasfield (larrybr) on 2021-04-14 12:33:10 in reply to 4 [source]

The two features which potentially block sqlite_schema table modification are intended to help avoid or mitigate certain security risks arising from SQL injection attacks. Your usage may not have that exposure, or you may have reason to trust the sources of SQL that may be run on your DB(s), in which case re-enabling the protection may have little value to you.