【发布时间】:2019-05-14 15:07:36
【问题描述】:
我需要在数据库级别获取包含主键的列名。
Model.primary_key 返回models_id 列名,它不是数据库级别的主键。无论如何我都无法更改迁移或修改表。
我目前可以通过 MySqlAdapter 使用 ActiveRecord::Base.connection.primary_key('table_name') 获得它
但这不适用于具有复合主键的表。如果表包含复合主键,则返回nil。
有什么方法可以通过编程实现这一点?
【问题讨论】:
-
“我有什么办法可以做到这一点吗?” 检查 INFORMATION_SCHEMA 数据库和KEY_COLUMN_USAGE 视图,确定它就在其中。
-
这需要以编程方式完成。我会更新我的问题@RaymondNijland
-
另外,如果您建议运行原始查询 rails 端,我宁愿不这样做 :)
标签: mysql ruby-on-rails ruby-on-rails-3 activerecord