diff --git a/Database/Beam/Migrate/Generics/Types.hs b/Database/Beam/Migrate/Generics/Types.hs
--- a/Database/Beam/Migrate/Generics/Types.hs
+++ b/Database/Beam/Migrate/Generics/Types.hs
@@ -1,3 +1,5 @@
+{-# LANGUAGE UndecidableInstances #-}
+
 module Database.Beam.Migrate.Generics.Types where
 
 import           Database.Beam.Migrate.Types
diff --git a/Database/Beam/Migrate/SQL/Tables.hs b/Database/Beam/Migrate/SQL/Tables.hs
--- a/Database/Beam/Migrate/SQL/Tables.hs
+++ b/Database/Beam/Migrate/SQL/Tables.hs
@@ -76,11 +76,12 @@
                Text -> TableSchema (Sql92CreateTableColumnSchemaSyntax (Sql92DdlCommandCreateTableSyntax syntax)) table
             -> Migration syntax (CheckedDatabaseEntity be db (TableEntity table))
 createTable newTblName tblSettings =
-  do let createTableCommand =
+  do let pkFields = allBeamValues (\(Columnar' (TableFieldSchema name _ _)) -> name) (primaryKey tblSettings)
+         tblConstraints = if null pkFields then [] else [ primaryKeyConstraintSyntax pkFields ]
+         createTableCommand =
            createTableSyntax Nothing newTblName
                              (allBeamValues (\(Columnar' (TableFieldSchema name (FieldSchema schema) _)) -> (name, schema)) tblSettings)
-                             [ primaryKeyConstraintSyntax (allBeamValues (\(Columnar' (TableFieldSchema name _ _)) -> name) (primaryKey tblSettings)) ]
-
+                             tblConstraints
          command = createTableCmd createTableCommand
 
          tbl' = changeBeamRep (\(Columnar' (TableFieldSchema name _ _)) -> Columnar' (TableField name)) tblSettings
diff --git a/beam-migrate.cabal b/beam-migrate.cabal
--- a/beam-migrate.cabal
+++ b/beam-migrate.cabal
@@ -1,5 +1,5 @@
 name:                beam-migrate
-version:             0.3.2.1
+version:             0.3.2.2
 synopsis:            SQL DDL support and migrations support library for Beam
 description:         This package provides type classes to allow backends to implement
                      SQL DDL support for beam. This allows you to use beam syntax to
@@ -64,18 +64,17 @@
                        text                 >=1.2     && <1.3,
                        aeson                >=0.11    && <1.5,
                        bytestring           >=0.10    && <0.11,
-                       free                 >=4.12    && <5.1,
+                       free                 >=4.12    && <5.2,
                        time                 >=1.6     && <1.10,
                        mtl                  >=2.2     && <2.3,
                        scientific           >=0.3     && <0.4,
                        vector               >=0.11    && <0.13,
-                       containers           >=0.5     && <0.6,
                        unordered-containers >=0.2     && <0.3,
                        hashable             >=1.2     && <1.3,
                        parallel             >=3.2     && <3.3,
                        deepseq              >=1.4     && <1.5,
                        ghc-prim             >=0.5     && <0.6,
-                       containers           >=0.5     && <0.6,
+                       containers           >=0.5     && <0.7,
                        haskell-src-exts     >=1.18    && <1.21,
                        pretty               >=1.1     && <1.2,
                        dependent-map        >=0.2     && <0.3,
