mysql批量导入excel、csv、txt文件-自动脚本
如果你经常做数据分析,频繁需要将别人给的数据导入到数据库,就知道很费时间,有很多痛点。
为此,我写了个脚本,能多够一键导入,速度超快。
下面为视频介绍(B站搜索:nigo81)
             已关注 
           
 
            
          
           Follow 
         
 
         
           Replay  
          
          
           Like  
          
        
 
        
                
               逆行的狗 
                
              
 
              
                 
                Added to Top Stories 
               
 
              0/0
 
          00:00 
          / 
          28:54 
         
 
        
              00:00 
            
 
            / 
            
              28:54 
            
 
           
             28:54 
           
 
           
            全屏 
           
 
           
           倍速播放中 
         
 
        继续观看
mysql批量导入excel、csv、txt文件-自动脚本
              Original 
            
 
           
             , 
           
 
           
             mysql批量导入excel、csv、txt文件-自动脚本 
           
 
            
           
            
           逆行的狗 
            
          
 
           
               
              Added to Top Stories 
             
 
            如何安装
 
 克隆本项目:
git clone https://github.com/nigo81/import-csv-to-mysql.git
给csv2mysql文件添加可执行权限:
chmod +x csv2mysql
将csv2mysql复制到~/.local/bin:
cp csv2mysql ~/.local/bin
你需要安装fzf搜索工具,因为脚本里调用它来选择文件。
如何使用
进入你csv文件所在目录,然后执行csv2mysql
你可以使用fzf的搜索功能,按下tab键可以选中文件。
选择完成后,按下回车确认。
    ~/tmp  csv2mysql
input some database parameters
Enter your host ip,(default is 127.0.0.1)🔗:
Enter your database name 📚:book
Enter your account name 🥷:root
Enter password 🔑:\n
table name 📑:vip
do your wan't to drop table if exists? 0:don't drop, 1:drop  :1
data ignore lines num,usually as 0 or 1:1
input character set(default is utf8):
你需要填写mysql数据库的一些信息,如ip,数据库名称,账号,密码。
你需要在table name处输入你将导入的数据保存的表的名称,如果数据库中没有该表,会自动创建。
vim脚本
如果你熟悉vim,我也写了个vim脚本。
" SQL建表 可以将一行表头转换为导入语句
vnoremap <F12> :call Mysql()<CR>
func! Mysql() range
let line = getline('.')
let l = line('.')
let start = l
let word_list = split(line,',')
let output = ["create table <++> ("]
let i =0
for word in word_list
    let word = substitute(word,'^"','','')
    let word = substitute(word,'"$','','')
    let word = "`" . word . "`"
    let i=i+1
    if i == len(word_list)
        call add(output,word . " varchar(255)")
    else
        call add(output,word . " varchar(255),")
    endif
    let l = l+1
endfor
call add(output,");")
call append(start,output)
let l = l+3
call setline(l ,"")
call setline(l+1 ,"load data infile <++>")
call setline(l+2,"into table <++>")
call setline(l+3,"character set 'utf8'")
call setline(l+4,"fields terminated by '<++>' optionally enclosed by <++>")
call setline(l+5,"lines terminated by '<++>' ignore 1 lines;")
"return line
endfunc
可视模式下选中表头行,按下F12键,就可以自动生成建表语句和导入语句。
