问题标签 [bulkinsert]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
7143 浏览

mysql - 从 XML 文件批量插入 MYSQL

我们如何将数据从 XML 文件加载到 Mysql 表中?有没有办法从 XML 文件中读取数据并写入 MySql 数据库。我在 XML 文件中有大量数据。

提前感谢您的帮助。

0 投票
3 回答
2369 浏览

tsql - 如何在 SQL Standard 上导出 SSIS 数据并在 SQL Express 上使用 Bulk Insert 导入?

我想使用 SSIS 创建数据库表平面文件导出,然后将它们导入到各种分布式 SQL Express 安装中。正如您可能猜到的,SSIS 在 Express 版本中不可用。当我进行批量插入时,它会出错:

Msg 4866, Level 16, State 8, Line 1 The bulk load failed. The column is too long in the data file for row 1, column 5. Verify that the field terminator and row terminator are specified correctly.

生成的文件是 ascii (1252),字段之间有 char(09) (tab),char(0d) char(0a) 结束一行(我认为是 \r\n)。

这是格式文件(第 4 列是列的宽度):

9.0
5
1 SQLCHAR 0 12 "\t" 1 Record_ID ""
2 SQLCHAR 0 498 "\t" 2 Filename SQL Latin1 General CP1 CI AS
3 SQLCHAR 0 498 "\t" 3 Path SQL Latin1 General CP1 CI AS
4 SQLCHAR 0 12 "\t" 4 Width ""
5 SQLCHAR 0 12 "\r\n" 5 Height ""

从文件顶部开始的示例数据:

Record_ID Filename Path Width Height
1437 BreadCakeCooknPie.eps G:\BakedGoods\BreadCakeCooknPie.eps 595 647
1438 CakeChocolateRoses.eps G:\BakedGoods\CakeChocolateRoses.eps 1200 848

我使用以下 T-SQL 代码导入它:

bulk insert item_table from 'Item_Table.txt' with
( FORMATFILE='Item_Table.fmt', FIRSTROW=2)

表字段是:

[Record_ID] [int] NULL,
[Filename] [nvarchar](249) NULL,
[Path] [nvarchar](249) NOT NULL,
[Width] [int] NULL,
[Height] [int] NULL

有没有可用的文案?知道如何解决错误吗?知道如何获取 SSIS 创建的格式文件吗?还有其他想法吗?

非常感谢您考虑我的问题。

0 投票
7 回答
35926 浏览

c# - TSQL:使用 INSERT INTO SELECT FROM 进行更新

所以我有一个旧数据库,我正在迁移到一个新数据库。新的架构略有不同,但大多兼容。此外,我想从零开始重新编号所有表。

目前我一直在使用自己编写的工具,手动检索旧记录,将其插入到新数据库中,并更新旧数据库中的 v2 ID 字段以显示其在新数据库中对应的 ID 位置。

例如,我从 MV5.Posts 中选择并插入到 MV6.Posts 中。在插入时,我在 MV6.Posts 中检索新行的 ID,并在旧的 MV5.Posts.MV6ID 字段中更新它。

有没有办法通过 INSERT INTO SELECT FROM 进行此更新,这样我就不必手动处理每条记录?我正在使用 SQL Server 2005,开发版。

0 投票
4 回答
38634 浏览

sql - 具有许多索引的表的慢速批量插入

我尝试将数百万条记录插入具有 20 多个索引的表中。

在最后一次运行中,每 100.000 行花费了 4 多个小时,并且查询在 3½ 天后被取消......

您对如何加快速度有什么建议吗?

(我怀疑很多索引是原因。如果你也这么认为,我怎样才能在操作之前自动删除索引,然后再次创建相同的索引?)

额外信息:

  • 索引使用的空间大约是数据单独使用的空间的 4 倍
  • 插入每 100.000 行包装在一个事务中。

状态更新:

接受的答案帮助我让它更快。

0 投票
4 回答
3299 浏览

c# - SQL Server 2005 插入父/子 xml 数据

给定一个如下所示的 xml 文档:

在 SQL Server 2005 中,将此文档传递到存储过程中的最快方法是什么,该存储过程会将父记录和子记录插入一组表中,其中父表具有标识列,子表通过以下方式引用父表外键?

我正在使用带有 C# 的 ADO.NET 和 .NET 3.5。我可以选择将数据作为 xml 参数类型或文本类型发送。我可以使用新奇的 sql 2005 XQuery 东西或老式的 SQL 2000 OPENXML 风格。或者,如果实际上可以使用 SqlBulkInsert 或类似的方法来完成这些插入,那么我对最快的方法感到失望(在这种情况下性能很重要。)感谢您的帮助!


编辑:

看起来插入父/子集确实像看起来一样困难。我无法尝试学习 LINQ to SQL 并将该框架集成到我的产品中(我们在这里处于开发周期!)并且我无法使用 Xml Bulk Insert 工具获得很大的吸引力,尽管它看起来可用于此目的。最后,我重组了表以在两个表上使用 GUID 主键,并在 API 中生成完整记录。然后我就可以使用 ADO 2.0 SqlBulkInsert 高速发送数据了。将答案授予 Daniel Miller,因为 SQL Server Bulk Load 在不完全重新构建我的应用程序的情况下获得了最大的成功机会。

0 投票
11 回答
386711 浏览

postgresql - 将批量插入 Postgres 的最快方法是什么?

我需要以编程方式将数千万条记录插入 Postgres 数据库。目前,我正在一个查询中执行数千个插入语句。

有没有更好的方法来做到这一点,一些我不知道的批量插入语句?

0 投票
13 回答
250579 浏览

php - 如何使用 CodeIgniter 框架从数组中插入多行?

我正在使用插入命令通过 PHP 将大型数据集传递到 MySQL 表中,我想知道是否可以通过查询一次插入大约 1000 行,而不是将每个值附加到一英里长的字符串的末尾和然后执行它。我正在使用 CodeIgniter 框架,因此我也可以使用它的功能。

0 投票
17 回答
68246 浏览

sql-server - SQL Server 批量插入带有不一致引号的 CSV 文件

是否可以批量插入(SQL Server)一个 CSV 文件,其中的字段仅偶尔被引号包围?具体来说,引号仅围绕那些包含“,”的字段。

换句话说,我的数据看起来像这样(第一行包含标题):

因为引号不一致,我不能使用 '","' 作为分隔符,我不知道如何创建一个格式文件来解决这个问题。

我尝试使用','作为分隔符并将其加载到一个临时表中,其中每一列都是一个varchar,然后使用一些kludgy处理来去除引号,但这也不起作用,因为包含','的字段被分成多列。

不幸的是,我无法事先操作 CSV 文件。

这是没有希望的吗?

非常感谢您的任何建议。

顺便说一句,我看到这篇文章SQL bulk import from csv,但在这种情况下,每个字段都始终用引号括起来。因此,在这种情况下,他可以使用 ',' 作为分隔符,然后去掉引号。

0 投票
3 回答
42678 浏览

sql - 使用 SQL 在 Oracle 模式之间复制数据

我正在尝试使用SQL 语句将数据从一个 Oracle 模式 ( CORE_DATA) 复制到另一个 ( ) 中。MY_DATAINSERT INTO (...)

SQL 语句会是什么样子?

0 投票
3 回答
434 浏览

ms-access - 规范化数据 - 使用循环批量插入

有没有人有任何提示可以帮助加快分解表并将大量记录插入新表的过程。

我目前正在使用 Access 和 VBA 将包含具有大字符串(700 + 个字符)的记录的表转换为一个新表,其中每个字符都有自己的记录(行)。我通过一次循环遍历字符串 1 个字符并使用 VBA 中的简单 DAO 插入新表来做到这一点。

目前我正在处理一小部分数据——300 条记录,每条记录有 700 个字符串。此过程大约需要 3 小时才能运行,因此不会扩展到包含 50,000 条记录的完整数据集!

表 1 结构

id - 字符串 001 - abcdefg

变成

表2结构

id - 字符串 001 - a 001 - b 001 - c 。. . . . .

我愿意接受任何可以改善事情的建议。

干杯

菲尔