The SQLite docs say that keywords can't be used as identifiers, but in reality the SQLite implementation is fairly permissive. Try running this script to see which SQL keywords can be used as column names:
import sqlite3
from sqliteparser.lexer import SQL_KEYWORDS
conn = sqlite3.connect(":memory:")
disallowed = set()
allowed = set()
for i, keyword in enumerate(SQL_KEYWORDS):
try:
conn.execute(f"CREATE TABLE lol{i}({keyword} text)")
except sqlite3.OperationalError:
disallowed.add(keyword)
else:
allowed.add(keyword)
for keyword in sorted(disallowed):
print("Disallowed keyword:", keyword)
print()
for keyword in sorted(allowed):
print("Allowed keyword:", keyword)
conn.close()
The SQLite docs say that keywords can't be used as identifiers, but in reality the SQLite implementation is fairly permissive. Try running this script to see which SQL keywords can be used as column names: