使用 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 语句时更改将记录在事务日志中。这意味着如果发生涉及数据库文件的介质故障,则可以通过事务日志恢复关于所做更改的信息。
在以下示例中,数据被添加到 SQL Anywhere 示例数据库的 Departments 表中。
确保目标表存在。
执行 INSERT 语句。例如,
以下示例在 SQL Anywhere 示例数据库的 Departments 表中插入新行。
INSERT INTO Departments ( DepartmentID, DepartmentName, DepartmentHeadID ) VALUES ( 700, 'Training', 501) SELECT * FROM Departments; |
插入值操作将新数据添加到现有表中。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |