我有一个很长的评论想要添加到 Postgres 表中。
由于我不想使用很长的单行作为注释,因此我想将其分成几行。这可能吗?\n不起作用,因为 Postgres 不使用反斜杠作为转义字符。
小智 11
只需编写一个多行字符串:
COMMENT ON TABLE foo IS 'This
comment
is stored
in multiple lines';
Run Code Online (Sandbox Code Playgroud)
您还可以\n在以 开头的“扩展”字符串常量中嵌入转义序列E:
COMMENT ON TABLE foo IS E'A comment\nwith three\nlines.';
Run Code Online (Sandbox Code Playgroud)
您可以使用相邻字符串文字的自动串联以及E\'\\n\'换行符的转义序列:
COMMENT ON TABLE foo IS E\'\'\n \'This comment is stored in multiple lines. But only some\'\n \'end with linebreaks like this one.\\n\'\n \'You can even create empty lines to simulate paragraphs:\'\n \'\\n\\n\'\n \'This would be the second paragraph, then.\';\nRun Code Online (Sandbox Code Playgroud)\n细节:
\nE\'\'注意第一行末尾的首字母。这对于使后面的所有相邻字符串文字都使用扩展字符串文字语法至关重要,为我们提供了编写\\n换行符的选项。当然,E也可以将其放置在第二行中,即实际字符串的开头:E\'This comment \xe2\x80\xa6\'。我把它放在第一行只是源代码美学 \xe2\x80\xa6 字符对齐和东西。
我认为这个解决方案比多行字符串(在此处的另一个答案中提出)稍好,因为它允许将注释适应典型的行宽限制和源文件的缩进要求。当您将 SQL 保存在版本控制下的格式良好的文件中(即像对待任何其他源代码一样对待它)时,这很有用。另一方面,当在多行字符串中包含缩进时,这会导致实时表注释中出现大量额外的空格。
\nOP 注意:当你说“我不想要很长的单行作为注释”时,不清楚你是否不想在.sql源代码文件中出现那么长的行,或者如果你不想要它出现在实时表的表注释中,例如在数据库管理工具中看到的情况。这并不重要,因为此解决方案为您提供了用于两个目的的工具:使用相邻的字符串文字将您的行放入源代码文件中,而不影响实时表注释中的换行符;并用于\\n在实时表注释中创建换行符和空行。
| 归档时间: |
|
| 查看次数: |
2090 次 |
| 最近记录: |