zoukankan      html  css  js  c++  java
  • load data infile

    LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name'
        [REPLACE | IGNORE]
        INTO TABLE tbl_name
        [PARTITION (partition_name,...)]
        [CHARACTER SET charset_name]
        [{FIELDS | COLUMNS}
            [TERMINATED BY 'string']
            [[OPTIONALLY] ENCLOSED BY 'char']
            [ESCAPED BY 'char']
        ]
        [LINES
            [STARTING BY 'string']
            [TERMINATED BY 'string']
        ]
        [IGNORE number {LINES | ROWS}]
        [(col_name_or_user_var,...)]
        [SET col_name = expr,...]
     
    starting by指定每行开始的位置,跟字符有关。
    terminated by 指定列的分隔符,默认是Tab符(\t)。
    enclosed by  指定列的包括符,默认为空。
    escaped by 转义字符,默认的是反斜杠('\')。
    IGNORE number {LINES | ROWS} :忽略数据文件的前N行。
     
     
    如果你指定关键词low_priority,那么MySQL将会等到没有其他人读这个表的时候,才把插入数据。可以使用如下的命令: 
    load data low_priority infile "/tmp/data sql" into table Orders;
     
    如果指定local关键词,则表明从客户主机读文件。如果local没指定,文件必须位于服务器上。
     
    replace和ignore关键词控制对现有的唯一键记录的重复的处理。如果你指定replace,新行将代替有相同的唯一键值的现有行。
    如果你指定ignore,跳过有唯一键的现有行的重复行的输入。如果你不指定任何一个选项,当找到重复键时,出现一个错误,并且文本文件的余下部分被忽略。例如:
    load data low_priority infile "/tmp/data sql" replace into table Orders;
     
     
    关于字符集的处理,
    范例一:
    load data infile '/tmp/test.txt' into table test charset gbk fields terminated by ',';
     
    范例二:
    先设置字符集,再执行导入语句:
    set character_set_database=gbk;
     
    表中的列比数据文件的列多,处理范例:
    $more /tmp/test.csv
    10,"zhangsan","zhangsan@qq.com",25
    11,"lisi","lisi@qq.com",26
    12,"wangwu","wangwu@qq.com",27
     
    load data infile '/tmp/test.csv'
    into table test
    FIELDS TERMINATED BY ',' ENCLOSED BY '"'
    (id,name,ename,age);
     
     
    表中的列比数据文件的列少,并且最后两列也不对应,处理范例:
    $more /tmp/test.csv
    10,"zhangsan",25,"zhangsan@qq.com",13000000000,0
    11,"lisi",26,"lisi@qq.com",13000000001,5
    12,"wangwu",27,"wangwu@qq.com",13000000002,2
     
    load data infile '/tmp/test.csv'
    into table test
    FIELDS TERMINATED BY ',' ENCLOSED BY '"'
    (id,name,age,ename,@tmp_sex,@tmp_tel,status)
    set sex-if(@tmp_sex='男',0,1;
  • 相关阅读:
    Manjaro mirror in china
    gnome3.X添加开机启动项
    ssh无密钥登陆的简单配置
    ESXi虚拟磁盘共享
    记录一次fat32格式U盘不识别问题
    更换内核后重编virtualbox内核模块
    宏定义字符串连接和符号粘贴
    kernel source reading notepad
    linux kernel tainted
    设计模式-观察者模式(Observer Pattern)
  • 原文地址:https://www.cnblogs.com/l10n/p/7518214.html
Copyright © 2011-2022 走看看