zoukankan      html  css  js  c++  java
  • MySQL Inport--导入数据

    LOAD DATA INFILE导入数据

    语法:

    LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE ''
        [REPLACE | IGNORE]
        INTO TABLE tbl_name
        [FIELDS
            [TERMINATED BY 'string']
            [[OPTIONALLY] ENCLOSED BY 'char']
            [ESCAPED BY 'char' ]
        ]
        [LINES
            [STARTING BY 'string']
            [TERMINATED BY 'string']
        ]
        [IGNORE number LINES]
        [(col_name_or_user_var,...)]
        [SET col_name = expr,...)]

    LOAD DATA 命令中的默认值:
    FIELDS TERMINATED BY ' ' ENCLOSED BY '' ESCAPED BY '\'
    LINES TERMINATED BY ' ' STARTING BY ''

    文件参数:

    LOCAL参数:
    1、如果指定了LOCAL,则文件会被客户主机上的客户端读取,并被发送到服务器。文件会被给予一个完整的路径名称,以指定确切的位置。如果给定的是一个相对的路径名称,则此名称会被理解为相对于启动客户端时所在的目录。 2、如果LOCAL没有被指定,则文件必须位于服务器主机上,并且被服务器直接读取。

    当在服务器主机上为文件定位时,服务器使用以下规则:
    1、如果参数为绝对路径,则MySQL使用该绝对路径
    2、如果参数为带目录的相对路径,则MySQL会相对于数据目录进行文件查找
    3、如果参数为不带目录的文件名,则MySQL会在数据目录下进行文件查找

    LOAD DATA LOCAL命令运行将本例文件加载到数据库中,存在安全问题,可以使用--local-infile=0来从服务器端禁用LOAD DATA LOCAL命令。

    LOAD DATA LOCAL命令只能针对单个文件进行数据导入。

    MYSQLIMPORT使用LOAD DATA INFILE的命令接口,可以使用--user-thread选项来设置导入数据的并发线程,其本质是同时执行多个LOAD DATA INFILE的命令。

    LOAD DATA INFILE模板

    如果文件使用MYSQLDUMP -tab 或SELECT INTO OUTFILE导出,那么可以使用LOAD DATA INFILE来导入。
    常用导入模板:

    LOAD DATA INFILE '/backup/TB001.txt' INTO TABLE TB001(id,c1) 
    FIELDS TERMINATED BY ',' 
    OPTIONALLY ENCLOSED BY '"' 
    LINES TERMINATED BY '
    '
    IGNORE 0 LINES

    执行SQL命令文件

    对于包含SQL命令的文件,可以使用mysql命令执行,也可以在登录MySQL后使用source命令执行,建议使用mysql方式:

    1、可以使用--force参数来控制是否出错后执行

    2、可以使用--verbose参数输出执行结果,并将正常结果和异常结果分开存放,方便查看

    如果使用source命令,中间命令执行失败后仍会继续执行后续命令,并很可能被后续执行结果“覆盖”导致错误被忽略

    如果希望使用mysql命令来执行命令文件且想使用事务,可以在命令开始和命令结束添加"BEGIN"+“COMMIT”,然后将--force参数设置为False,当执行失败后会自动回滚并退出。

    如果希望使用source命令来执行命令文件且想使用事务,不能在文件中使用"BEGIN"+“COMMIT”,需要在SOURCE命令外部使用"BEGIN"+“COMMIT”,在判断SOURCE执行结果后确定是COMMIT还是ROLLBACK。

  • 相关阅读:
    mysql 8.0.18 mgr节点状态长时间处于RECOVERING 状态
    mgr安装 加入第二个节点报错-[ERROR] [MY-011526] [Repl] Plugin group_replication reported: 'This member has more executed transactions than those present in the grou
    mgr安装-启动主节点报错-[ERROR] [MY-011735] [Repl] Plugin group_replication reported: '[GCS] Unable to announce tcp port
    sqlserver维护计划无法删除处理
    ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
    keepalived-2.0.15 编译安装报错
    论自由与素质
    乘法表
    python函数和方法
    python三引号的用法
  • 原文地址:https://www.cnblogs.com/gaogao67/p/10639604.html
Copyright © 2011-2022 走看看