public static HashSet <String> GetPrimaryKeysColumns(this H2Connection connection, String tableName) { // Reference : http://java.sun.com/javase/6/docs/api/java/sql/DatabaseMetaData.html#getPrimaryKeys(java.lang.String, java.lang.String, java.lang.String) /*try { * var dbMeta = connection.connection.getMetaData(); * var res = dbMeta != null ? dbMeta.getPrimaryKeys(null, null, tableName) : null; * if (res != null) { * var ret = new HashSet<String>(); * while (res.next()) { * var columnName = res.getString(4); * ret.Add(columnName); * } * return ret; * } * } catch (Exception ex) { * Console.WriteLine(ex); * }*/ var ret = new HashSet <String>(); foreach (var list in connection.ReadStrings("select column_list from INFORMATION_SCHEMA.CONSTRAINTS where constraint_type = 'PRIMARY KEY' and upper(table_name) = '" + tableName.ToUpper() + "' ")) { foreach (var col in list.Split(',')) { ret.Add(col.Trim()); } } return(ret); }
public static HashSet <String> GetUniqueColumns(this H2Connection connection, String tableName) { // Reference : http://java.sun.com/javase/6/docs/api/java/sql/DatabaseMetaData.html#getIndexInfo(java.lang.String, java.lang.String, java.lang.String, boolean, boolean) /*try { * var dbMeta = connection.connection.getMetaData(); * var res = dbMeta != null ? dbMeta.getIndexInfo(null, null, tableName, true, false) : null; * if (res != null) { * var ret = new HashSet<String>(); * while (res.next()) { * var columnName = res.getString(4); * ret.Add(columnName); * } * return ret; * } * } catch (Exception ex) { * Console.WriteLine(ex); * }*/ return(new HashSet <String>(connection.ReadStrings("select column_list from INFORMATION_SCHEMA.CONSTRAINTS where constraint_type = 'UNIQUE' and upper(table_name) = '" + tableName.ToUpper() + "'"))); }