getTableColumns method
Get the tableName
columns as array of:
- name (string),
- type (string),
- isPrimaryKey (int, 1 for true)
- notnull (int).
Implementation
@override
Future<List<List>> getTableColumns(TableName tableName) async {
var pkName = await getPrimaryKey(tableName);
String sql = """select column_name, data_type
from information_schema.columns
where upper(table_name)=upper(?)
and table_Schema=?""";
List<List<dynamic>> columnsList = [];
var res = await select(sql, [tableName.name, tableName.getSchema()]);
res?.forEach((QueryResultRow row) {
String colName = row.get('column_name');
String colType = row.get('data_type');
int isPk = 0;
if (pkName != null && colName == pkName) {
isPk = 1;
}
// TODO check
int? notNull; //row['notnull'];
columnsList.add([colName, colType, isPk, notNull]);
});
return columnsList;
}