mirror of
https://github.com/simonw/sqlite-utils.git
synced 2026-07-23 01:14:31 +02:00
create-table now supports multiple --pk, refs #620
This commit is contained in:
parent
1dc5da3e5d
commit
23be5be1dc
3 changed files with 13 additions and 3 deletions
|
|
@ -1909,6 +1909,8 @@ This will create a table called ``mytable`` with two columns - an integer ``id``
|
|||
|
||||
You can pass as many column-name column-type pairs as you like. Valid types are ``integer``, ``text``, ``float`` and ``blob``.
|
||||
|
||||
Pass ``--pk`` more than once for a compound primary key that covers multiple columns.
|
||||
|
||||
You can specify columns that should be NOT NULL using ``--not-null colname``. You can specify default values for columns using ``--default colname defaultvalue``.
|
||||
|
||||
.. code-block:: bash
|
||||
|
|
|
|||
|
|
@ -1489,7 +1489,7 @@ def create_database(path, enable_wal, init_spatialite, load_extension):
|
|||
)
|
||||
@click.argument("table")
|
||||
@click.argument("columns", nargs=-1, required=True)
|
||||
@click.option("--pk", help="Column to use as primary key")
|
||||
@click.option("pks", "--pk", help="Column to use as primary key", multiple=True)
|
||||
@click.option(
|
||||
"--not-null",
|
||||
multiple=True,
|
||||
|
|
@ -1532,7 +1532,7 @@ def create_table(
|
|||
path,
|
||||
table,
|
||||
columns,
|
||||
pk,
|
||||
pks,
|
||||
not_null,
|
||||
default,
|
||||
fk,
|
||||
|
|
@ -1581,7 +1581,7 @@ def create_table(
|
|||
)
|
||||
db[table].create(
|
||||
coltypes,
|
||||
pk=pk,
|
||||
pk=pks[0] if len(pks) == 1 else pks,
|
||||
not_null=not_null,
|
||||
defaults=dict(default),
|
||||
foreign_keys=fk,
|
||||
|
|
|
|||
|
|
@ -1180,6 +1180,14 @@ def test_upsert_alter(db_path, tmpdir):
|
|||
["age", "integer", "--default", "age", "3"],
|
||||
("CREATE TABLE [t] (\n" " [age] INTEGER DEFAULT '3'\n" ")"),
|
||||
),
|
||||
# Compound primary key
|
||||
(
|
||||
["category", "text", "name", "text", "--pk", "category", "--pk", "name"],
|
||||
(
|
||||
"CREATE TABLE [t] (\n [category] TEXT,\n [name] TEXT,\n"
|
||||
" PRIMARY KEY ([category], [name])\n)"
|
||||
),
|
||||
),
|
||||
],
|
||||
)
|
||||
def test_create_table(args, schema):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue