primary_key_names(table)
click to toggle source
Returns an ordered list of primary key column names of the given table
# File lib/rubyrep/connection_extenders/jdbc_extender.rb, line 19 def primary_key_names(table) if tables.grep(/^#{table}$/).empty? # Note: Cannot use tables.include? as returned tables are made lowercase under JRuby MySQL raise "table '#{table}' does not exist" end columns = [] result_set = @connection.connection.getMetaData.getPrimaryKeys(nil, nil, table); while result_set.next column_name = result_set.getString("COLUMN_NAME") key_seq = result_set.getShort("KEY_SEQ") columns << {:column_name => column_name, :key_seq => key_seq} end columns.sort! {|a, b| a[:key_seq] <=> b[:key_seq]} key_names = columns.map {|column| column[:column_name]} key_names end