SQLite语法 COPY

来源:互联网 发布:酒心巧克力 知乎 编辑:程序博客网 时间:2024/04/29 16:00

SQLite的SQL语法

[目录]

COPY

sql-statement ::= COPY [ OR conflict-algorithm ] [database-name .] table-name FROM filename
[ USING DELIMITERS delim ]

COPY命令在SQLite 2.8及更早的版本中可用。SQLite 3.0 删除了这一命令,因为在混合的UTF-8/16环境中对它进行支持是很复杂的。 在3.0版本中,命令行解释器包含新的.import命令,用以替代COPY。

COPY命令是用于将大量数据插入表的一个插件。它模仿PostgreSQL中的相同命令而来。事实上,SQLite的COPY 命令就是为了能够读取PostgreSQL的备份工具pg_dump的输出从而能够将PostgreSQL的数据轻松转换到SQLite中而设计的。

table-name是将要导入数据的一个已存在的表的名字。filename是一个字符串或标识符,用于说明作为数据来源的文件。 filename可以使用STDIN从标准输入流中获取数据。

输入文件的每一行被转换成一条单独的记录导入表中。字段用制表符分开。若某个字段的数据中出现制表符, 则前面被添加反斜线"/"符号。数据中的反斜线则被替换为两条反斜线。可选的USING DELIMITERS子句可给出一个与制表符不同 的分界符。

若字段由"/N"组成,则被赋以空值NULL.

使用这一命令时,利用可选的ON CONFLICT子句可以定义替代的约束冲突判定算法。更多信息,参见 ON CONFLICT

当输入数据源是STDIN,输入将终止于一行仅包含一个反斜线和一个点的输入: "/.".