gpt4 book ai didi

mysql - 在 Rails 中访问 INFORMATION_SCHEMA

转载 作者:行者123 更新时间:2023-11-29 19:01:57 25 4
gpt4 key购买 nike

我正在尝试检查某个列存在于哪个表中。这应该由应用程序在运行时完成。我想使用 INFORMATION_SCHEMA.COLUMNS 表和 WHERE 语句来做到这一点。当我执行在 pgAdmin 中所做的查询时,它起作用了。现在我如何在 Rails 中访问这个表?或者有更好的方法来做我想做的事吗?

这是我提出的查询:

SELECT * FROM INFORMATION_SCHEMA.COLUMNS 
WHERE COLUMN_NAME = 'myColumn'
order by TABLE_NAME

最佳答案

如果原始查询有效,您可以使用 ActiveRecord::Base.connection.execute

执行它
def find_tables_for(column_name)
return unless column_name
ActiveRecord::Base.connection.execute(
"SELECT table_name FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME = '#{column_name}'
ORDER BY TABLE_NAME"
).values.flatten
end

$~ find_tables_for('user_id')
#=> ["profiles", "posts"]

此方法将返回所有具有column_name的表

Note: I am intentionally selecting only table_name you can add other fields as well

关于mysql - 在 Rails 中访问 INFORMATION_SCHEMA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43805269/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com