Rails/ActiveRecord 方法来检查 SQL(mysql 是具体的)table 索引

Rails/ActiveRecord method to check an SQL(mysql to be specific) table index

有没有Railscommand/method列出SQLtable的索引?

这适用于 MySQL、SQLite3 和 Postgres:

ActiveRecord::Base.connection.tables.each do |table| puts ActiveRecord::Base.connection.indexes(table).inspect end

这里已经回答了ActiveRecord finding existing table indexes

以下内容与 Show All Indexes in Your table - Oracle DB 一起使用,用于特定 table 明智地查找定义的索引。它对我有用。

ModelName.find_by_sql("SELECT index_name, table_name, uniqueness FROM USER_INDEXES WHERE table_name = 'YOUR_TABLE_NAME'")

您可以尝试 MYSQL。这个我没有测试过,你可以确认一下是否有效。

ModelName.find_by_sql("SHOW INDEX FROM YOUR_TABLE_NAME")