Skip to content

create-table --sql option for CREATE TABLE AS SELECT - #846

Open
ChrisJr404 wants to merge 1 commit into
simonw:mainfrom
ChrisJr404:create-table-sql
Open

create-table --sql option for CREATE TABLE AS SELECT#846
ChrisJr404 wants to merge 1 commit into
simonw:mainfrom
ChrisJr404:create-table-sql

Conversation

@ChrisJr404

@ChrisJr404 ChrisJr404 commented Aug 18, 2026

Copy link
Copy Markdown

Closes #481.

This adds a --sql option to create-table so you can populate a new table from a query without having to drop into sqlite3 or run the CREATE TABLE ... AS SELECT by hand:

sqlite-utils create-table mydb.db tall_people --sql "select * from people where height > 180"

The columns come from the query, so --sql can't be combined with column definitions or with --pk/--not-null/--default/--fk/--transform/--strict - each of those raises a clear error if you pass them alongside it. --ignore and --replace both work the same way they do for the normal create-table, and I kept the existing 'table already exists' behaviour so nothing changes for people not using --sql.

Docs and the cog-generated CLI reference are updated, and there are tests covering the happy path plus all the option-conflict and already-exists cases.


📚 Documentation preview 📚: https://sqlite-utils--846.org.readthedocs.build/en/846/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Idea: sqlite-utils create-table tablename --sql "select ..."

1 participant