快速业务通道

SQL大全[1]

作者 佚名技术 来源 数据库编程 浏览 发布时间 2012-03-22
体系间的植性不是很好.
缺省地,文本拷贝使用 tab ("\t")字符作为分隔符. 分隔符仍然可以用关键字 USING DELIMITERS 改成任何其它的字符. 在数据中碰巧与分隔符相同的字符将用反斜扛引起.
你对任何要COPY 出来的数据必须有select 权限,对任何要 COPY 入数据的表必须有 insert 或 update 权限. 使用 COPY 时后端同样需要适当的对文件操作的 Unix 权限.
COPY TO不会激活规则,也不会处理字段缺省值。不过它的确激活触发器和检查约束。
COPY 在第一个错误处停下来.这些在 COPY FROM中不应该导致问题,但在 COPY TO 时目的表会已经接收到早先的行,这些行将不可见或不可访问,但是仍然会占据磁盘空间. 如果你碰巧是拷贝很大一块数据文件的话,积累起来,这些东西可能会占据相当大的一部分磁盘空间.你可以调用 VACUUM来恢复那些磁盘空间.
COPY命令里面的文件必须是可以由后端直接读或写的文件,而不是由客户端应用读写.因此,它们必须位于数据库服务器上或者可以为数据库服务器所访问, 而不是由客户端做这些事情.它们必须是PostgreSQL用户(服务器运行的用户 ID) 可以访问到并且 可读或者可写,而不是客户端. COPY 到一个命名文件是只允许数据库超级用户进行的, 因为它允许写任意后端有权限写的文件.
小技巧: psql指令 \copy 以客户的权限读或写在客户端的文件,因此不局限于超级用户.
我们建议在 COPY 里的文件名字总是使用 绝对路径.在 COPY TO 的时候是由后端强制 进行的,但是对于 COPY FROM,你的确有从一个声明为相对路径的文件里读取的选择.该路径将解释为相对于后端的 工作目录(在 $PGDATA 里的什么地方),而不是客户端的工作目录.
文件格式
文本格式
当不带 BINARY 选项使用 COPY TO 时,生成的文件每条元组占据一行,每列(字段)用分隔符分开.内嵌的分隔符字 符将由一个反斜杠("\")开头.字段值本身是由与每个字段类型相关的输出函数生成的字符串.某一类型的输出函数本身不应该生成反斜杠;这个任务由 COPY 本身完成.
每个元组的实际格式是
<attr1><separator><attr2><separator>...<separator><attrn><newline>    请注意每行的结尾是用 Unix 风格的换行符("\n")标记的. 如果给出的文件包含 DOS 或 Mac 风格的换行符,那么 COPY FROM 将会出错.
如果声明了 WITH OIDST,它将被放在每行的开头.
如果 COPY TO 将它的输出输出到标准输出而不是一个文件, 在拷贝结束时,它将在一个新行上输出一个反斜杠("\")和一个句点("."),最后是一个换行符做为文件结束符.类似,如果 COPY FROM 从标准输入读入数据,它将把一行开头的由一个反斜杠("\")和一个句点(".")和一个换行符组成的这三个连续字符作为文件结束符. 不过,如果在这个特殊的文件结束模式出现前关闭了输入联接,那么COPY FROM 将正确结束(接着就是后端自身).
反斜杠有其他的含义.一个文本反斜杠字符输出成两个连续的反斜杠 ("\\") 一个文本tab字符用一个反斜 杠后面跟一个tab代表. (如果你使用了非 tab 作为列分隔符,那么在数据中出现的该字符将会使用反斜扛转意.) 一个文本新行字符用一个反斜杠和一个新行代表. 当装载不是由 PostgreSQL 生成的文件时,你需要将反 斜杠字符 ("\")转换成双反斜杠("\\")以保证正确装载.
二进制格式
在PostgreSQLv7.1 中的 COPY BINARY 的文件格式做了变化.新格式由一个文件头,零或多条元组, 以及文件尾组成.
文件头
文件头由 24 个字节的固定域组成,后面跟着一个变长的头扩展

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号