Index: management.py
===================================================================
--- management.py	(revision 3754)
+++ management.py	(working copy)
@@ -145,6 +145,7 @@
     opts = model._meta
     final_output = []
     table_output = []
+    references = []
     pending_references = {}
     for f in opts.fields:
         if isinstance(f, models.ForeignKey):
@@ -165,10 +166,11 @@
                 field_output.append(style.SQL_KEYWORD('PRIMARY KEY'))
             if f.rel:
                 if f.rel.to in known_models:
-                    field_output.append(style.SQL_KEYWORD('REFERENCES') + ' ' + \
+                    reference = style.SQL_KEYWORD('REFERENCES') + ' ' + \
                         style.SQL_TABLE(backend.quote_name(f.rel.to._meta.db_table)) + ' (' + \
                         style.SQL_FIELD(backend.quote_name(f.rel.to._meta.get_field(f.rel.field_name).column)) + ')'
-                    )
+                    field_output.append(reference)
+                    references.append('FOREIGN KEY (%s) ' % style.SQL_FIELD(backend.quote_name(f.column)) + reference)
                 else:
                     # We haven't yet created the table to which this field
                     # is related, so save it for later.
@@ -181,7 +183,8 @@
     for field_constraints in opts.unique_together:
         table_output.append(style.SQL_KEYWORD('UNIQUE') + ' (%s)' % \
             ", ".join([backend.quote_name(style.SQL_FIELD(opts.get_field(f).column)) for f in field_constraints]))
-
+    for constraint in references:
+        table_output.append(style.SQL_KEYWORD('CONSTRAINT') + ' ' + constraint)
     full_statement = [style.SQL_KEYWORD('CREATE TABLE') + ' ' + style.SQL_TABLE(backend.quote_name(opts.db_table)) + ' (']
     for i, line in enumerate(table_output): # Combine and add commas.
         full_statement.append('    %s%s' % (line, i < len(table_output)-1 and ',' or ''))
@@ -244,10 +247,22 @@
                 style.SQL_KEYWORD('NOT NULL REFERENCES'),
                 style.SQL_TABLE(backend.quote_name(f.rel.to._meta.db_table)),
                 style.SQL_FIELD(backend.quote_name(f.rel.to._meta.pk.column))))
-            table_output.append('    %s (%s, %s)' % \
+            table_output.append('    %s (%s, %s),' % \
                 (style.SQL_KEYWORD('UNIQUE'),
                 style.SQL_FIELD(backend.quote_name(f.m2m_column_name())),
                 style.SQL_FIELD(backend.quote_name(f.m2m_reverse_name()))))
+            table_output.append('    %s (%s) %s %s (%s),' % \
+                (style.SQL_KEYWORD('CONSTRAINT FOREIGN KEY'),
+                 style.SQL_FIELD(backend.quote_name(f.m2m_column_name())),
+                style.SQL_KEYWORD('REFERENCES'),
+                style.SQL_TABLE(backend.quote_name(opts.db_table)),
+                style.SQL_FIELD(backend.quote_name(opts.pk.column))))
+            table_output.append('    %s (%s) %s %s (%s)' % \
+                (style.SQL_KEYWORD('CONSTRAINT FOREIGN KEY'),
+                style.SQL_FIELD(backend.quote_name(f.m2m_reverse_name())),
+                style.SQL_KEYWORD('REFERENCES'),
+                style.SQL_TABLE(backend.quote_name(f.rel.to._meta.db_table)),
+                style.SQL_FIELD(backend.quote_name(f.rel.to._meta.pk.column))))
             table_output.append(');')
             final_output.append('\n'.join(table_output))
     return final_output
