Hi, Clemens,

On Sat, Mar 12, 2016 at 1:41 PM, Clemens Ladisch <clemens at ladisch.de> wrote:
> Igor Korot wrote:
>> There is a notion of system table vs. user table in the DBMS.
>
> System tables are tables with a name beginning with "sqlite_".
>
>> My question is: what should I do if I want to create a system table?
>
> This is possible only by (ab)using the writable_schema pragma:
>
>   CREATE TABLE xxx(what, ever, [...]);
>   PRAGMA writable_schema = ON;
>   UPDATE sqlite_master
>    SET name     = 'sqlite_xxx',
>        tbl_name = 'sqlite_xxx',
>        sql      = replace(sql, 'xxx', 'sqlite_xxx')
>    WHERE name = 'xxx';
>
> Alternatively, modify the SQLite source code.
>
> But why would you want to do this?  Now you have a table that is
> not completely accessible, and that will not show up in the output
> of .dump.

OK, so how many system tables SQLite has? Is there a way to get their info?

Thank you.

>
>
> Regards,
> Clemens
> _______________________________________________
> sqlite-users mailing list
> sqlite-users at mailinglists.sqlite.org
> http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to