PostgreSQL小写表名

时间:2014-11-25 14:16:09

标签: postgresql

在阅读PostgreSQL 9.3 documentation并运行一个简单的查询以使所有列名称为小写后,我试图复制它以使所有表名全部为小写...

UPDATE pg_attribute SET tablename=lower(tablename);

不幸的是,虽然命令行PSQL没有抛出任何错误,但没有一个数据库表名被改成小写。

如何在PostgreSQL中将所有表名小写?

我不需要任何复杂的东西,因为这些是因为数据混乱所会丢弃的表,所以只是一个简单的简单查询会很棒。

1 个答案:

答案 0 :(得分:1)

首先,不要这样做。

在您需要运行的查询中引用表名,然后在查询中"MyTableName" 确实"MyTableName",而不是在查询之前折叠为小写以MyTableName =>的方式运行mytablename将是。

如果您觉得迫切需要这样做 - 那么您应该从数据库的SQL转储中执行此操作

pg_dump > backup.sql
sed -i s/SomeStuff/somestuff/g backup.sql
# ...etc.

如果您有一个表名列表,请在sed或shell脚本中使用大量的sed命令列表,这样您就可以调整内容,直到您做对了。

这不仅更安全,而且还可以减少疯狂的头发。你可以错误地炸毁备份数据;没有伤害。你不能搞砸数据目录 - 因为你再也不会得到干净的转储,而且最初可能没有明显的错误,尤其是如果有存储的话涉及的程序。