【发布时间】:2016-09-21 07:33:08
【问题描述】:
由于我们的电子邮件服务的限制,我们有一个带有电子邮件字段的表格 - 排序规则latin1_swedish_ci。
当有新用户到达时检查此表以查看他是否已订阅。
用户的电子邮件中出现了对该特定排序规则无效的字符。比如hsıasdf@test.com
是否有可能在保存之前确定一个字符串是否会 遵守数据库的排序规则?
我是否可以在任何数据库触发器之前检查 保存/创建/查找;如果包含此特定电子邮件的条目将 同意整理?也许是一些正则表达式?
【问题讨论】:
-
Rails 默认集合设置为
utf8_general_ci。是否要将整个 rails 应用程序更改为使用latin_swedish_ci。 -
@Coderhs 整个应用程序已经使用了
latin_swedish_ci。如果不支持输入值,我只是不想运行数据库查询 -
电子邮件系统是否与您的 Rails 应用程序共享数据库?谴责你的整个申请
latin_swedish_ci似乎是一个非常苛刻的解决方案。 -
通过执行这个查询作为测试函数并在mysql抛出错误时返回false不是一个有效的方法吗?
-
@Solarflare 可以,但这个问题不仅限于此表。有多个地方的排序规则不匹配会引发错误。我可以将所有这些 sn-ps 包装在救援块中,但如果有更优雅的方法来做到这一点..
标签: mysql ruby-on-rails collation