getPrimaryKey method
Get the primary key for a given table.
Implementation
@override
Future<String?> getPrimaryKey(TableName tableName) async {
var queryResult = await select(getIndexSql(tableName));
if (queryResult?.length == 0) {
// try second way
var queryResult = await select(getIndexSql(tableName));
if (queryResult?.length == 0) {
return null;
} else {
var queryResultRow = queryResult?.first;
String? pkName;
String? indexName = queryResultRow?.get("index_name").toString();
if (indexName != null && indexName.toLowerCase().contains("pkey")) {
String? columnDef = queryResultRow?.get("column").toString();
pkName = columnDef?.split(RegExp(r"\s+"))[0];
}
return pkName;
}
} else {
var row = queryResult?.first;
if (row != null) {
return row.getAt(0);
}
return null;
}
}