method
foreign_keys
v5.0.0.1 -
Show latest stable
-
0 notes -
Class: ActiveRecord::ConnectionAdapters
- 1.0.0
- 1.1.6
- 1.2.6
- 2.0.3
- 2.1.0
- 2.2.1
- 2.3.8
- 3.0.0
- 3.0.9
- 3.1.0
- 3.2.1
- 3.2.8
- 3.2.13
- 4.0.2
- 4.1.8
- 4.2.1
- 4.2.7
- 4.2.9
- 5.0.0.1 (0)
- 5.1.7 (0)
- 5.2.3 (0)
- 6.0.0
- 6.1.3.1
- 6.1.7.7
- 7.0.0
- 7.1.3.2
- 7.1.3.4
- What's this?
foreign_keys(table_name)
public
Hide source
# File activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb, line 513 def foreign_keys(table_name) raise ArgumentError unless table_name.present? schema, name = extract_schema_qualified_name(table_name) fk_info = select_all SELECT fk.referenced_table_name as 'to_table' ,fk.referenced_column_name as 'primary_key' ,fk.column_name as 'column' ,fk.constraint_name as 'name' FROM information_schema.key_column_usage fk WHERE fk.referenced_column_name is not null AND fk.table_schema = #{quote(schema)} AND fk.table_name = #{quote(name)}.strip_heredoc create_table_info = create_table_info(table_name) fk_info.map do |row| options = { column: row['column'], name: row['name'], primary_key: row['primary_key'] } options[:on_update] = extract_foreign_key_action(create_table_info, row['name'], "UPDATE") options[:on_delete] = extract_foreign_key_action(create_table_info, row['name'], "DELETE") ForeignKeyDefinition.new(table_name, row['to_table'], options) end end