标签: import

导入时转储 mysql 表替换了现有记录

我使用 mysqldump 进行了转储。

mysqldump -u... -p... mydb t1 > mydb_table.sql
Run Code Online (Sandbox Code Playgroud)

然后我将转储导入另一个具有相同表但不同记录的数据库中。

mysql -u...-p... mydb < mydb_tables.sql
Run Code Online (Sandbox Code Playgroud)

导入数据库有从 primary_key 1 到 1000 的记录,导出数据库有 5000 到 10,000..

但是在导入现有记录时,即 1 到 1000 被删除了..

如何??为什么??如果这是默认行为,我可以提供哪些选项来转储以免下次发生。

mysql mysqldump backup import

9
推荐指数
1
解决办法
4万
查看次数

批量数据导入建议

我们正在开展一个项目,该项目需要每天从 Excel 电子表格中导入数据。数据将从预定义的模板中导入,我们在想什么,首先我们将数据上传到临时表中并执行清理操作(删除不必要的信息,在父表中添加新行并获取它们的FK等)。

  • 我需要知道是否有任何可用的工具或实用程序可以减少我们的工作量。
  • 从不同来源(主要来自 Excel 电子表格)插入批量记录的最佳方法是什么?

sql-server bulk import

8
推荐指数
3
解决办法
974
查看次数

将不同的字符集导出转储导入另一个数据库实例

我正在尝试使用 oracle imp 实用程序导入给定的转储文件。然而; 我面临以下问题。

C:\Users\AD>imp DB_USER/*****@dev1 file=C:\test\db42312.dmp log=C:\test\import2.log

Import: Release 11.2.0.1.0 - Production on Thu Apr 10 13:37:47 2014

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.


Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

IMP-00038: Could not convert to environment character set's handle
IMP-00000: Import terminated unsuccessfully

C:\Users\AD>
Run Code Online (Sandbox Code Playgroud)

我的源数据库为 NLS 查询生成以下结果

SQL> select * from v$nls_parameters where parameter in ('NLS_CHARACTERSET','NLS_LANGUAGE');

PARAMETER …
Run Code Online (Sandbox Code Playgroud)

oracle import

8
推荐指数
1
解决办法
5万
查看次数

如何在使用向导导入 txt 时将空白导入为空值而不是零

我正在使用导入向导加载文本文件,并且需要整数字段中的空白为空,但只插入零。

如何正确导入?

sql-server import sql-server-2012 integer

8
推荐指数
3
解决办法
1万
查看次数

SQL Server 避免在查询中多次重复排序规则类型

我有一个查询,它从源数据库 (DatabaseA) 中选择行,并将它们插入到目标数据库 (Database B) 中。数据库之间的排序规则类型不同,无法更改。我需要通过显式指定 varchar 字段的排序规则来解决查询中的排序规则差异。

目前我的查询是这样的:

INSERT INTO DatabaseB.dbo.Users(
    Id,
    UserNumber,
    FirstName,
    Surname,
    Address1,
    Address2,
    AddressTown,
    AddressCity
)
SELECT 
    Id,
    UserNumber,
    FirstName COLLATE SQL_Latin1_General_CI_AS,
    Surname COLLATE SQL_Latin1_General_CI_AS,
    Address1 COLLATE SQL_Latin1_General_CI_AS,
    Address2 COLLATE SQL_Latin1_General_CI_AS,
    AddressTown COLLATE SQL_Latin1_General_CI_AS,
    AddressCity COLLATE SQL_Latin1_General_CI_AS
FROM DatabaseA.dbo.Users
Run Code Online (Sandbox Code Playgroud)

我的问题是,我可以避免为每个基于字符串的字段键入排序规则类型吗?有没有办法可以一次为整个查询指定排序规则类型?如果这是不可能的,还有其他捷径吗?

sql-server collation insert import bulk-insert

8
推荐指数
2
解决办法
4233
查看次数

使用数百万条 INSERT 语句导入大型 SQL 转储

我需要将一个大.sql文件(解压时为 8.1GB)导入 PostgreSQL。我尝试使用,\i /path/to/file.sql但它太慢了。

如何加快进口?我需要每周导入这些数据。

第一个2000行可以在这里找到,而压缩的1点GB转储可以在这里找到

--
-- PostgreSQL database dump
--

-- Dumped from database version 9.5.3
-- Dumped by pg_dump version 9.5.2

SET statement_timeout = 0;
SET lock_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SET check_function_bodies = false;
SET client_min_messages = warning;
SET row_security = off;

--
-- Name: rpo; Type: SCHEMA; Schema: -; Owner: -
--
Run Code Online (Sandbox Code Playgroud)

这是我获取数据的唯一途径。完整的文件有大约。38,000,000 行。如何加快导入速度?

postgresql performance import pg-dump postgresql-performance

8
推荐指数
1
解决办法
7787
查看次数

mysql 到 mariadb:未知排序规则 utf8mb4_0900_ai_ci

我有一个使用 mysqldump 导出的 mysql 8.0。我正在尝试使用 phpmyadmin 将它导入到 Mariadb 10.4 数据库中,两者都是最新版本。每次我这样做时,我都会得到:

Error: Unknown collation utf8mb4_0900_ai_ci
Run Code Online (Sandbox Code Playgroud)

然后我回到 sql 文件并替换utf8mb4_0900_ai_ciutf8mb4_general_ci,但是它说各种CREATE VIEWsql 语句都有错误。我可以尝试其他快速、无错误的修复吗?

mariadb mysqldump phpmyadmin collation import

8
推荐指数
2
解决办法
4816
查看次数

将 Oracle 完整转储文件导入到全新的 Oracle 安装

我正在将在 AIX Oracle 9.2 安装上创建的 Oracle 转储填充导入到 Windows 2008 R2 x64 上的 Windows Oracle 10.2.0.4。

我想将文件导入一个干净的数据库。但是,如果我不先创建数据库,就没有什么可创建的。如果我创建数据库,它会抛出很多错误,抱怨缺少用户和表空间,即使是 FULL=Y。

如何将此转储导入到干净的 Oracle 安装中?

导出在系统下运行,导入也运行。索引文件不包含导入用户和表空间的语句,但是当我对原始文件运行完整导入时,IMP 尝试创建TABLESPACES(路径不正确,我必须更改,我知道)但是它不会尝试创建用户,只会抱怨他们不存在。

实际的导出命令用户是:

exp <a_User>/<a_Password> FULL=Y FILE=/PATHHERE/oradata/Export/expdat.dmp log=exp`date + %d%m%y.%H%M%S`.log consistent=y
Run Code Online (Sandbox Code Playgroud)

oracle windows dump import

7
推荐指数
1
解决办法
2万
查看次数

批量数据加载和事务日志

我目前正在开发一个项目,该项目从平面文件 (csv) 中批量导入数据,大约 18 个不同的文件通过一些存储过程链接到特定的表。

我按照数据加载性能指南中的建议进行了操作。

数据库处于BulkLogged恢复模式以最小化日志记录,当在包含 600000 行的文件上执行以下存储过程时,我收到错误

消息 9002,级别 17,状态 4,过程 SP_Import__DeclarationClearanceHistory_FromCSV,第 34 行
数据库的事务日志已满。要找出无法重用日志中的空间的原因,请参阅 sys.databases 中的 log_reuse_wait_desc 列

(出于测试目的,我在开始导入之前进行了完整备份)。

看着log_reuse_wait_desc我看到以下内容:

log_reuse_wait_desc 检查点。所有其他导入成功导入。

欢迎任何解决此问题的意见。

PROCEDURE [dbo].[SP_Import_DeclarationClearanceHistory_FromCSV]
    @FilePath [nvarchar](1000)
AS
BEGIN
    -- Creating a Temproary Table for importing the data from csv file.
    DBCC TRACEON(610)

    CREATE TABLE #DeclarationClearanceHistory
    (
          [ItemID] [int] IDENTITY(1, 1) NOT NULL ,
          [CMSDeclarationID] [bigint] NOT NULL ,
          [StatusCode] [nvarchar](10) NOT NULL ,
          [SubStatus] [nvarchar](10) NULL ,
          [DepartmentCode] [nvarchar](10) …
Run Code Online (Sandbox Code Playgroud)

sql-server optimization bulk sql-server-2008-r2 import

7
推荐指数
1
解决办法
4330
查看次数

当 PostgreSQL 的“类别”太多时,我应该使用枚举吗?

问题

我计划将包含更多 1000 万条记录的 CSV 加载到 PostgreSQL v12.1,其中一列具有“分类”值,因此为其创建枚举类型似乎是一个不错的选择,但它包含 208 个类别。

最短的字段为 2,最长的字段为 11 个字符。所有字段的平均值为 2.4。字符编码是 UTF8,但所有字符都是 ASCII

问题:

我应该使用enumeratedvarchar哪种类型?

附加信息

我丢弃char是因为官方 PostgreSQL 文档说明了有关charvarchartext 的以下内容

提示:这三种类型之间没有性能差异,除了使用空白填充类型时增加了存储空间,以及在存储到长度受限列时需要额外的一些 CPU 周期来检查长度。虽然 character(n) 在其他一些数据库系统中具有性能优势,但在 PostgreSQL 中没有这样的优势;事实上 character(n) 通常是三个中最慢的,因为它有额外的存储成本。在大多数情况下,应改用文本或字符变化。

PostgreSQL 中的枚举值在磁盘上占用4 个字节(请参阅 8.7.4. 实现细节)。考虑到这一点和使用enum类型的2.4 平均字符串长度会导致磁盘使用率略高(PostgreSQL 中的短字符串需要一个额外的字节磁盘空间)。我仍然有一种直觉,即使用 enum 是更好的选择,因为它的实现使许多针对它的操作更快。

postgresql performance import postgresql-performance

7
推荐指数
2
解决办法
2577
查看次数