SQLite DDL and Schema Design Cheatsheet/Create a WITHOUT ROWID table

Optimize some composite-key tables.

Section: Create tables and constraints

Create a WITHOUT ROWID table

sql
sql
CREATE TABLE locale_strings (
  locale TEXT NOT NULL,
  key TEXT NOT NULL,
  value TEXT NOT NULL,
  PRIMARY KEY (locale, key)
) WITHOUT ROWID;
Explanation

Useful when the natural primary key is composite and rowid storage adds little value.

Learn the surrounding workflow

Compare similar commands or jump into common fixes when this command is part of a bigger troubleshooting path.

Related commands

Same sheet · prioritizing Create tables and constraints
Create a basic table
Define a rowid-backed table with primary key and timestamps.
OpenIn sheetsqlsame section
Use a CHECK constraint
Validate allowed values at the database layer.
OpenIn sheetsqlsame section
Add a foreign key
Reference a parent table from a child table.
OpenIn sheetsqlsame section
Create a generated column
Materialize or compute a derived value from another column.
OpenIn sheetsqlsame section
Add a column
Append a new nullable or defaulted column.
OpenIn sheetsql1 tag match
Rename a table
Change the table name without recreating data.
OpenIn sheetsql1 tag match