我在执行以下查询时遇到问题。有没有办法用 psql 查询维护大写字母?我试过不工作的引号,我试过单引号,在这种情况下我得到一个语法错误。注意:看起来列是使用引号创建的,很好,但是我如何从命令中引用引号呢?)
psql bash 命令行界面
psql -h $DB_HOST -p $DB_PORT -U $DB_USER -d $DB_NAME -c "\copy table_name(fileName, time) FROM $OUTPUT_FILE WITH DELIMITER AS ',' NULL 'null'"
结果:
ERROR: column "filename" of relation "table_name" does not exist
PostgreSQL 将诸如表名之类的标识符视为小写,除非您引用它。
你说虽然双引号不起作用。那可能是因为您没有正确引用。在 shell 中引用很难。您必须结束围绕整个查询的双引号字符串才能开始包含双引号的单引号字符串:
psql -h $DB_HOST -p $DB_PORT -U $DB_USER -d $DB_NAME -c "\copy table_name("'"fileName"'", time) FROM $OUTPUT_FILE WITH DELIMITER AS ',' NULL 'null'"
您可以利用 psql 也通过标准输入接受命令的事实,这允许您按如下方式编写它而不必担心引号:
psql -h $DB_HOST -p $DB_PORT -U $DB_USER -d $DB_NAME <<SQL
\copy table_name("fileName", time) FROM $OUTPUT_FILE WITH DELIMITER AS ',' NULL 'null'
SQL
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句