SQLite Forum

CREATE TABLE allowing empty column name
Login
This is a documented feature.  The documentation is at
<https://www.sqlite.org/quirks.html#keywords_can_often_be_used_as_identifiers>.
If you will run:

~~~~~
    PRAGMA table_info=foo;
~~~~~

You'll find that you have created a table with a single column named
"`integer`" with no datatype specified and which is the PRIMARY KEY.  The
table is the same as:

~~~~~
    CREATE TABLE foo(bar PRIMARY KEY);
~~~~~

Except that in your table the column is named "`integer`" instead of "`bar`".

SQLite has long had the ability to use keywords as identifiers.  This is
because SQL has many keywords that can potentially collide with identifier
names, and as we add new keywords when new features are added, the new
keywords do not break legacy schemas.  The ability to use keywords as
identifiers promotes extreme backwards compatibility.