⌘+k ctrl+k
1.4 (LTS)
搜索快捷键 cmd + k | ctrl + k
INSERT 语句

INSERT 语句是将数据加载到关系型数据库的标准方式。使用 INSERT 语句时,数据是逐行提供的。虽然这种方式很简单,但解析和处理单个 INSERT 语句会带来巨大的开销。因此,对于批量插入而言,大量逐行插入的效率非常低。

最佳实践 根据经验法则,当需要插入多行数据时,应避免使用大量的逐行 INSERT 语句(例如,避免在循环中使用 INSERT 语句)。在进行批量数据插入时,应尽量最大化每条语句所插入的数据量。

如果您必须在循环中使用 INSERT 语句加载数据,请避免在自动提交模式下执行这些语句。每次提交后,数据库都需要将所做的更改同步到磁盘,以确保数据不会丢失。在自动提交模式下,每一条语句都会被包装在一个单独的事务中,这意味着每条语句都会调用 fsync。这在批量加载时通常是不必要的,并且会显著拖慢您的程序运行速度。

提示 如果您确实必须在循环中使用 INSERT 语句来加载数据,请使用 BEGIN TRANSACTIONCOMMIT 将它们包裹起来。

语法

以下是使用 INSERT INTO 将数据加载到表中的示例

CREATE TABLE people (id INTEGER, name VARCHAR);
INSERT INTO people VALUES (1, 'Mark'), (2, 'Hannes');

有关更详细的说明及语法图,请参阅 INSERT 语句页面

© 2025 DuckDB 基金会,阿姆斯特丹,荷兰
行为准则 商标使用指南