首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ActiveRecord > MySQL适配器>区分大小写

问ActiveRecord > MySQL适配器>区分大小写
EN

Stack Overflow用户
提问于 2010-09-28 05:56:28
回答 2查看 698关注 0票数 2

我正在使用一个MySQL数据库,该数据库具有大写的表/字段名,如用户、机构等。因为数据库主机的操作系统是Linux,所以标识符(如表名)被视为区分大小写。因此,如果表名不是大写的,将导致出现表不存在错误。

我试图解决的问题是,ActiveRecord总是以小写形式构造标识符。因此,例如,如果使用"find“方法从Institution表中获取第一条记录,则生成的SQL将如下所示:

代码语言:javascript
复制
SELECT `institutions`.* FROM `institutions` LIMIT 1

当然,这会在Linux环境中导致MySQL错误,因为它不区分大小写。

关于如何解决这个问题,你有什么想法?

提前感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-09-28 06:00:26

代码语言:javascript
复制
class Mouse < ActiveRecord::Base
  set_table_name "Meece"
end

我想应该能让你清醒过来。

票数 2
EN

Stack Overflow用户

发布于 2010-09-28 06:04:13

Rails使用convention over configuration从模型中确定表的名称。

但您始终可以调整默认设置以匹配您的遗留数据库。看看这里:

http://book.opensourceproject.org.cn/lamp/ruby/railscook/opensource/0596527314/i_0596527314_chp_3_sect_20.html

还有这里:

http://railsapi.com/doc/rails-v3.0.0/classes/ActiveRecord/Base.html#M001129

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3808215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档