Method: Sequel::ADO::Access::DatabaseMethods#foreign_key_list
- Defined in:
- lib/sequel/adapters/ado/access.rb
#foreign_key_list(table, opts = OPTS) ⇒ Object
OpenSchema returns compound foreign key relationships as multiple rows
148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 |
# File 'lib/sequel/adapters/ado/access.rb', line 148 def foreign_key_list(table, opts=OPTS) m = output_identifier_meth fks = ado_schema_foreign_keys(table).inject({}) do |memo, fk| name = m.call(fk['FK_NAME']) specs = memo[name] ||= { :columns => [], :table => m.call(fk['PK_TABLE_NAME']), :key => [], :deferrable => fk['DEFERRABILITY'], :name => name, :on_delete => fk['DELETE_RULE'], :on_update => fk['UPDATE_RULE'] } specs[:columns] << m.call(fk['FK_COLUMN_NAME']) specs[:key] << m.call(fk['PK_COLUMN_NAME']) memo end fks.values end |