• 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;
  • 相关阅读:
    文件打包下载
    DES加密解密
    jQuery实现表格拖动排序
    jQuery实现星星评分功能
    问卷调查功能中的题目编辑功能
    使用JS或jQuery模拟鼠标点击a标签事件
    zTree的使用
    给文本框添加模糊搜索功能(“我记录”MVC框架下实现)
    表达式计算器的实现
    asp.net几种开源上传控件,flash,ajax版,支持多文件
  • 原文地址:https://www.cnblogs.com/l10n/p/7518214.html
Copyright © 2020-2023  润新知