parent
3622be42b0
commit
09a99714c0
|
@ -1034,9 +1034,12 @@ class BaseDatabaseIntrospection(object):
|
||||||
|
|
||||||
def get_primary_key_column(self, cursor, table_name):
|
def get_primary_key_column(self, cursor, table_name):
|
||||||
"""
|
"""
|
||||||
Backends can override this to return the column name of the primary key for the given table.
|
Returns the name of the primary key column for the given table.
|
||||||
"""
|
"""
|
||||||
raise NotImplementedError
|
for column in six.iteritems(self.get_indexes(cursor, table_name)):
|
||||||
|
if column[1]['primary_key']:
|
||||||
|
return column[0]
|
||||||
|
return None
|
||||||
|
|
||||||
def get_indexes(self, cursor, table_name):
|
def get_indexes(self, cursor, table_name):
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -2,7 +2,6 @@ import re
|
||||||
from .base import FIELD_TYPE
|
from .base import FIELD_TYPE
|
||||||
|
|
||||||
from django.db.backends import BaseDatabaseIntrospection
|
from django.db.backends import BaseDatabaseIntrospection
|
||||||
from django.utils import six
|
|
||||||
|
|
||||||
|
|
||||||
foreign_key_re = re.compile(r"\sCONSTRAINT `[^`]*` FOREIGN KEY \(`([^`]*)`\) REFERENCES `([^`]*)` \(`([^`]*)`\)")
|
foreign_key_re = re.compile(r"\sCONSTRAINT `[^`]*` FOREIGN KEY \(`([^`]*)`\) REFERENCES `([^`]*)` \(`([^`]*)`\)")
|
||||||
|
@ -88,15 +87,6 @@ class DatabaseIntrospection(BaseDatabaseIntrospection):
|
||||||
key_columns.extend(cursor.fetchall())
|
key_columns.extend(cursor.fetchall())
|
||||||
return key_columns
|
return key_columns
|
||||||
|
|
||||||
def get_primary_key_column(self, cursor, table_name):
|
|
||||||
"""
|
|
||||||
Returns the name of the primary key column for the given table
|
|
||||||
"""
|
|
||||||
for column in six.iteritems(self.get_indexes(cursor, table_name)):
|
|
||||||
if column[1]['primary_key']:
|
|
||||||
return column[0]
|
|
||||||
return None
|
|
||||||
|
|
||||||
def get_indexes(self, cursor, table_name):
|
def get_indexes(self, cursor, table_name):
|
||||||
cursor.execute("SHOW INDEX FROM %s" % self.connection.ops.quote_name(table_name))
|
cursor.execute("SHOW INDEX FROM %s" % self.connection.ops.quote_name(table_name))
|
||||||
# Do a two-pass search for indexes: on first pass check which indexes
|
# Do a two-pass search for indexes: on first pass check which indexes
|
||||||
|
|
Loading…
Reference in New Issue