Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 的用法 » 远程数据和批量操作 » 导入和导出数据 » 导入数据

 

使用 INSERT 语句导入数据

使用 INSERT 语句可将行添加到数据库中。由于 INSERT 语句中包括了目标表中的导入数据,因此可将其视为交互式输入。还可以使用具有远程数据访问的 INSERT 语句从另一个数据库(而不是文件)导入数据。

可以在以下情况下使用 INSERT 语句导入数据:

  • 要将少量数据导入到单个表中

  • 文件格式灵活

  • 要从外部数据库而不是从文件导入远程数据

INSERT 语句提供 ON EXISTING 子句以指定已在目标表中找到正在插入的行时要采取的操作。但是,如果预期有许多满足 ON EXISTING 条件的行,则应考虑使用 MERGE 语句。MERGE 语句提供更多对用于匹配行的操作的控制。该语句还提供更复杂的语法来定义构成匹配的元素。请参见MERGE 语句

有关实例化视图的注意事项

对于快速视图,如果尝试将批量数据装载到基础表,将会返回错误。必须首先在视图中截断数据,然后再执行批量装载操作。

对于手动视图,可以将批量数据装载到基础表;但是,在下次刷新前,视图中的数据会一直为失效状态。

在尝试执行批量装载操作(例如,对表执行 INSERT)之前,请首先考虑在相关的实例化视图中截断数据。装载数据之后,请刷新视图。请参见TRUNCATE 语句REFRESH MATERIALIZED VIEW 语句

有关文本索引的注意事项

对于快速文本索引,在执行了批量装载操作(例如对基础表执行 INSERT)之后更新文本索引可能需要一些时间,即使自动执行更新也是如此。对于手动文本索引,即使是刷新也可能需要一些时间。

在执行批量装载操作(例如,对表执行 INSERT)之前,请首先考虑删除相关的文本索引。装载数据之后,重新创建文本索引。请参见DROP TEXT INDEX 语句CREATE TEXT INDEX 语句

对数据库的影响

使用 INSERT 语句时更改将记录在事务日志中。这意味着如果发生涉及数据库文件的介质故障,则可以通过事务日志恢复关于所做更改的信息。

♦  导入数据(INSERT 语句):

在以下示例中,数据被添加到 SQL Anywhere 示例数据库的 Departments 表中。

  1. 确保目标表存在。

  2. 执行 INSERT 语句。例如,

    以下示例在 SQL Anywhere 示例数据库的 Departments 表中插入新行。

    INSERT
    INTO Departments ( DepartmentID, DepartmentName, DepartmentHeadID )
    VALUES ( 700, 'Training', 501)
    SELECT * FROM Departments;

    插入值操作将新数据添加到现有表中。

另请参见