我一直在玩mysqlimport,並且遇到了文件名必須與表名相同的限制。有什麼辦法可以解決這個問題嗎?在文件名與表名不同的地方使用mysqlimport
我不能重命名文件,因爲它被其他進程使用,我不想複製該文件,因爲它們中會有很多文件,其中一些非常大。
我想使用mysqlimport而不是LOAD INFILE。
編輯:不幸的是,這需要在Windows上運行,所以沒有與符號鏈接的技巧,我害怕。
我一直在玩mysqlimport,並且遇到了文件名必須與表名相同的限制。有什麼辦法可以解決這個問題嗎?在文件名與表名不同的地方使用mysqlimport
我不能重命名文件,因爲它被其他進程使用,我不想複製該文件,因爲它們中會有很多文件,其中一些非常大。
我想使用mysqlimport而不是LOAD INFILE。
編輯:不幸的是,這需要在Windows上運行,所以沒有與符號鏈接的技巧,我害怕。
您是否嘗試過使用alias
命令,假設您在Linux系統上?
只需創建一個符號鏈接:
ln -s /tmp/real_file.txt /tmp/your_table_name.txt
你沒有說你是在什麼平臺上。在unix上,你可以創建一個文件的符號鏈接:
ln -s filename.txt tablename.txt
然後在mysqlimport命令中使用它。
但mysqlimport的僅僅是一個命令行界面LOAD INFILE所以你也可以做到這一點的命令行:
mysql -e "load data infile 'filename' into table TBL_NAME" dbname
害怕我在windows上。 – 2010-03-24 18:04:55
你仍然可以在Windows上使用相同語法的mysql。符號化這些文件有點奇怪。 – 2015-04-16 14:11:55
的mysqlimport使用文件名來確定到其中的數據應該是表的名稱加載。該程序通過刪除任何文件擴展名(最後一段以及後面的任何內容)來完成此操作;結果將被用作表名。例如,mysqlimport將名爲City.txt或City.dat的文件作爲輸入加載到名爲City的表中。
爲什麼你不想使用'LOAD DATA INFILE',當它與mysqlimport所做的相同時,它允許你爲一個給定的輸入文件指定一個不同的表名? – 2010-03-24 14:46:40
我在使用Java/JDBC並調用LOAD INFILE在某些情況下加載文件時出現問題似乎不會產生任何錯誤。如果通過Workbench運行它,則會顯示警告,但JDBC驅動程序不會返回任何結果。 – 2010-03-24 18:03:58
mysqlimport應該允許一個參數設置不同的表名,這是一個基本的功能... – baptx 2017-10-18 09:33:24