【发布时间】:2013-09-15 00:23:34
【问题描述】:
如何在 postgres 中创建规则以在插入时强制 X 列小写。 EG 插入时:
INSERT INTO foobar (foo, bar) VALUES ('EXAMPLE', 2);
我希望在坚持之前将EXAMPLE 小写为example。
【问题讨论】:
-
为什么你的规则的一部分使用
NEW.foo而另一部分只使用foo? -
postgres 新手,正在猜测解决方案。没有新的试过了,还是报错:/
-
另外,
ascii()仅适用于字符串中的第一个字符。 -
两件事:1)。什么版本的 Postgres,2)。是大写还是小写取决于输入,还是 all 输入需要一个或另一个?如果是后者,BEFORE INSERT 触发器可能就是您所追求的。
-
显然,检查输入的大小写会产生开销,但如果您不需要,那么将它们 all 转换为大写或小写都可以。如果您想进行基准测试,尝试通过触发器加载一百万行(有和没有检查),您应该能够快速确定开销。我的即兴建议是应用大写或小写函数,无论输入的大小写如何。我没有看到任何预计的每秒操作数,但如果您只期望每秒几十个,我会选择应用上/下函数,而不管输入情况如何。
标签: postgresql