diff --git a/pypika/enums.py b/pypika/enums.py index d392fb04..482b687f 100644 --- a/pypika/enums.py +++ b/pypika/enums.py @@ -122,6 +122,7 @@ class SqlTypes: NUMERIC = "NUMERIC" SIGNED = "SIGNED" UNSIGNED = "UNSIGNED" + INTEGER_AUTO_INCREMENT = "INTEGER AUTO_INCREMENT" DATE = "DATE" TIME = "TIME" diff --git a/pypika/tests/test_create.py b/pypika/tests/test_create.py index 9e61467c..ee239118 100644 --- a/pypika/tests/test_create.py +++ b/pypika/tests/test_create.py @@ -1,7 +1,7 @@ import unittest from pypika import Column, Columns, Query, Table, Tables -from pypika.enums import ReferenceOption +from pypika.enums import ReferenceOption, SqlTypes from pypika.terms import Index, ValueWrapper @@ -124,6 +124,13 @@ def test_create_table_with_columns(self): self.assertEqual('CREATE TABLE IF NOT EXISTS "abc" ("a" INT,"b" VARCHAR(100))', str(q)) + with self.subTest("with primary key & auto increment"): + a = Column("a", SqlTypes.INTEGER_AUTO_INCREMENT, False) + b = Column("b", "VARCHAR(100)", default="foo") + q = Query.create_table(self.new_table).columns(a, b).primary_key(a) + + self.assertEqual('CREATE TABLE "abc" ("a" INTEGER AUTO_INCREMENT NOT NULL,"b" VARCHAR(100) DEFAULT \'foo\',PRIMARY KEY ("a"))', str(q)) + def test_create_table_with_select(self): select = Query.from_(self.existing_table).select(self.existing_table.foo, self.existing_table.bar)