 diff --git a/django/db/backends/creation.py b/django/db/backends/creation.py
-index a9d730a..595ee7a 100644
+index a9d730a..2d545a9 100644
 --- a/django/db/backends/creation.py
 +++ b/django/db/backends/creation.py
-@@ -73,6 +73,25 @@ class BaseDatabaseCreation(object):
+@@ -73,6 +73,23 @@ class BaseDatabaseCreation(object):
                  else:
                      field_output.extend(ref_output)
              table_output.append(' '.join(field_output))

             table_output.append(style.SQL_FIELD(qn('_order')) + ' ' + \
                 style.SQL_COLTYPE(models.IntegerField().db_type(connection=self.connection)))
diff --git a/django/db/models/options.py b/django/db/models/options.py
index 01a13b4..a3590a1 100644
--- a/django/db/models/options.py
+++ b/django/db/models/options.py
@@ -21,7 +21,8 @@ get_verbose_name = lambda class_name: re.sub('(((?<=[a-z])[A-Z])|([A-Z](?![A-Z]|

+        if opts.constraints:
+            check_name_list = []
+            for check_row in opts.constraints:
+                check_name, check_obj = check_row
+                if not check_name in check_name_list:
+                    check_name_list.append(check_name)
+                    check_obj.check_name = check_name
+                    table_output.append(check_obj.generate_sql(self.connection, style))
+                else:
+                    raise Exception(style.ERROR(u"Check name %s already exists." %check_name))
