예제 #1
0
        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);
        }
예제 #2
0
        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() + "'")));
        }