我没有学过MYSQL,只是在java里接触了一点,问题来了
我把数据库的字段类型都定义成varchar(50),然后用下面的语句生成一个文本文件for(int i=1;i<=50000;++i)
pw.println("哈哈哈哈哈"+i+"\t"+"哈哈哈哈哈"+i+"\t"+"哈哈哈哈哈"+i+"\t"+"哈哈哈哈哈"+i+"\t"+"哈哈哈哈哈"+i);
pw.close();把这个文本文件导入到数据库里,数据库里居然是50000条空记录,连null都没有,如下|      |      |      |      |      |
|      |      |      |      |      |
|      |      |      |      |      |
|      |      |      |      |      |
|      |      |      |      |      |
.......但是如果把引号的内容去掉,只留一个i的话,导入数据正常。
这是咋回事呢?

解决方案 »

  1.   

    "哈哈哈哈哈"+i+"\t"+"哈哈哈哈哈"+i+"\t"+"哈哈哈哈哈"+i+"\t"+"哈哈哈哈哈"+i+"\t"+"哈哈哈哈哈"+i内容是什么,怎么导入的
      

  2.   

    生成的文本文件
    哈哈哈哈哈1 哈哈哈哈哈1 哈哈哈哈哈1 哈哈哈哈哈1 哈哈哈哈哈1
    哈哈哈哈哈2 哈哈哈哈哈2 哈哈哈哈哈2 哈哈哈哈哈2 哈哈哈哈哈2
    哈哈哈哈哈3 哈哈哈哈哈3 哈哈哈哈哈3 哈哈哈哈哈3 哈哈哈哈哈3
    哈哈哈哈哈4 哈哈哈哈哈4 哈哈哈哈哈4 哈哈哈哈哈4 哈哈哈哈哈4
    哈哈哈哈哈5 哈哈哈哈哈5 哈哈哈哈哈5 哈哈哈哈哈5 哈哈哈哈哈5
    哈哈哈哈哈6 哈哈哈哈哈6 哈哈哈哈哈6 哈哈哈哈哈6 哈哈哈哈哈6
    哈哈哈哈哈7 哈哈哈哈哈7 哈哈哈哈哈7 哈哈哈哈哈7 哈哈哈哈哈7
    哈哈哈哈哈8 哈哈哈哈哈8 哈哈哈哈哈8 哈哈哈哈哈8 哈哈哈哈哈8
    哈哈哈哈哈9 哈哈哈哈哈9 哈哈哈哈哈9 哈哈哈哈哈9 哈哈哈哈哈9
    哈哈哈哈哈10 哈哈哈哈哈10 哈哈哈哈哈10 哈哈哈哈哈10 哈哈哈哈哈10
    哈哈哈哈哈11 哈哈哈哈哈11 哈哈哈哈哈11 哈哈哈哈哈11 哈哈哈哈哈11
    哈哈哈哈哈12 哈哈哈哈哈12 哈哈哈哈哈12 哈哈哈哈哈12 哈哈哈哈哈12
    哈哈哈哈哈13 哈哈哈哈哈13 哈哈哈哈哈13 哈哈哈哈哈13 哈哈哈哈哈13
    哈哈哈哈哈14 哈哈哈哈哈14 哈哈哈哈哈14 哈哈哈哈哈14 哈哈哈哈哈14
    哈哈哈哈哈15 哈哈哈哈哈15 哈哈哈哈哈15 哈哈哈哈哈15 哈哈哈哈哈15
    哈哈哈哈哈16 哈哈哈哈哈16 哈哈哈哈哈16 哈哈哈哈哈16 哈哈哈哈哈16
    哈哈哈哈哈17 哈哈哈哈哈17 哈哈哈哈哈17 哈哈哈哈哈17 哈哈哈哈哈17
    哈哈哈哈哈18 哈哈哈哈哈18 哈哈哈哈哈18 哈哈哈哈哈18 哈哈哈哈哈18
    哈哈哈哈哈19 哈哈哈哈哈19 哈哈哈哈哈19 哈哈哈哈哈19 哈哈哈哈哈19
    哈哈哈哈哈20 哈哈哈哈哈20 哈哈哈哈哈20 哈哈哈哈哈20 哈哈哈哈哈20导入命令是  LOAD DATA LOCAL INFILE "C:/haha.txt" INTO TABLE Jiangningshuiwu;
    我换成英文后能导入了,难道是汉字编码问题吗
      

  3.   

    show variables like 'char%';
      

  4.   

    set names 'gbk';
    LOAD DATA LOCAL INFILE "C:/haha.txt" INTO TABLE Jiangningshuiwu;
      

  5.   

    贴出你的 show variables like 'char%';的结果以供分析。
      

  6.   

    还是这个样
    | | | | | |
    | | | | | |
    | | | | | |
    | | | | | |
    | | | | | |
    .......连null都没有
      

  7.   

    三种解决办法:(假设你的数据库database charset本身是utf8的)1. set names 'gbk' 并且load in file charset 'gbk'
    mysql> set names 'gbk';
    Query OK, 0 rows affected (0.00 sec)mysql> load data local infile "c:/haha.txt" into table jiangningshuiwu charset 'gbk';
    Query OK, 20 rows affected (0.03 sec)
    Records: 20  Deleted: 0  Skipped: 0  Warnings: 0mysql> select * from jiangningshuiwu;
    +--------------+--------------+--------------+--------------+---------------+
    | col1         | col2         | col3         | col4         | col5          |
    +--------------+--------------+--------------+--------------+---------------+
      | 哈哈哈哈1  | 哈哈哈哈哈1  | 哈哈哈哈哈1  | 哈哈哈哈哈1  | 哈哈哈哈哈1
      | 哈哈哈哈2  | 哈哈哈哈哈2  | 哈哈哈哈哈2  | 哈哈哈哈哈2  | 哈哈哈哈哈2
      | 哈哈哈哈3  | 哈哈哈哈哈3  | 哈哈哈哈哈3  | 哈哈哈哈哈3  | 哈哈哈哈哈3
      | 哈哈哈哈4  | 哈哈哈哈哈4  | 哈哈哈哈哈4  | 哈哈哈哈哈4  | 哈哈哈哈哈4
      | 哈哈哈哈5  | 哈哈哈哈哈5  | 哈哈哈哈哈5  | 哈哈哈哈哈5  | 哈哈哈哈哈5
      | 哈哈哈哈6  | 哈哈哈哈哈6  | 哈哈哈哈哈6  | 哈哈哈哈哈6  | 哈哈哈哈哈6
      | 哈哈哈哈7  | 哈哈哈哈哈7  | 哈哈哈哈哈7  | 哈哈哈哈哈7  | 哈哈哈哈哈7
      | 哈哈哈哈8  | 哈哈哈哈哈8  | 哈哈哈哈哈8  | 哈哈哈哈哈8  | 哈哈哈哈哈8
      | 哈哈哈哈9  | 哈哈哈哈哈9  | 哈哈哈哈哈9  | 哈哈哈哈哈9  | 哈哈哈哈哈9
     |哈哈哈哈哈10 | 哈哈哈哈哈10 | 哈哈哈哈哈10 | 哈哈哈哈哈10 | 哈哈哈哈哈10
     |哈哈哈哈哈11 | 哈哈哈哈哈11 | 哈哈哈哈哈11 | 哈哈哈哈哈11 | 哈哈哈哈哈11
     |哈哈哈哈哈12 | 哈哈哈哈哈12 | 哈哈哈哈哈12 | 哈哈哈哈哈12 | 哈哈哈哈哈12
     |哈哈哈哈哈13 | 哈哈哈哈哈13 | 哈哈哈哈哈13 | 哈哈哈哈哈13 | 哈哈哈哈哈13
     |哈哈哈哈哈14 | 哈哈哈哈哈14 | 哈哈哈哈哈14 | 哈哈哈哈哈14 | 哈哈哈哈哈14
     |哈哈哈哈哈15 | 哈哈哈哈哈15 | 哈哈哈哈哈15 | 哈哈哈哈哈15 | 哈哈哈哈哈15
     |哈哈哈哈哈16 | 哈哈哈哈哈16 | 哈哈哈哈哈16 | 哈哈哈哈哈16 | 哈哈哈哈哈16
     |哈哈哈哈哈17 | 哈哈哈哈哈17 | 哈哈哈哈哈17 | 哈哈哈哈哈17 | 哈哈哈哈哈17
     |哈哈哈哈哈18 | 哈哈哈哈哈18 | 哈哈哈哈哈18 | 哈哈哈哈哈18 | 哈哈哈哈哈18
     |哈哈哈哈哈19 | 哈哈哈哈哈19 | 哈哈哈哈哈19 | 哈哈哈哈哈19 | 哈哈哈哈哈19
     |哈哈哈哈哈20 | 哈哈哈哈哈20 | 哈哈哈哈哈20 | 哈哈哈哈哈20 | 哈哈哈哈哈20
    +--------------+--------------+--------------+--------------+---------------+
    20 rows in set (0.00 sec)2. set names 'latin1' 并且load in file charset 'latin1'
    mysql> set names 'latin1';
    Query OK, 0 rows affected (0.00 sec)mysql> load data local infile "c:/haha.txt" into table jiangningshuiwu charset 'latin1';
    Query OK, 20 rows affected (0.05 sec)
    Records: 20  Deleted: 0  Skipped: 0  Warnings: 0mysql> select * from jiangningshuiwu;
    +--------------+--------------+--------------+--------------+---------------+
    | col1         | col2         | col3         | col4         | col5          |
    +--------------+--------------+--------------+--------------+---------------+
      | 哈哈哈哈1  | 哈哈哈哈哈1  | 哈哈哈哈哈1  | 哈哈哈哈哈1  | 哈哈哈哈哈1
      | 哈哈哈哈2  | 哈哈哈哈哈2  | 哈哈哈哈哈2  | 哈哈哈哈哈2  | 哈哈哈哈哈2
      | 哈哈哈哈3  | 哈哈哈哈哈3  | 哈哈哈哈哈3  | 哈哈哈哈哈3  | 哈哈哈哈哈3
      | 哈哈哈哈4  | 哈哈哈哈哈4  | 哈哈哈哈哈4  | 哈哈哈哈哈4  | 哈哈哈哈哈4
      | 哈哈哈哈5  | 哈哈哈哈哈5  | 哈哈哈哈哈5  | 哈哈哈哈哈5  | 哈哈哈哈哈5
      | 哈哈哈哈6  | 哈哈哈哈哈6  | 哈哈哈哈哈6  | 哈哈哈哈哈6  | 哈哈哈哈哈6
      | 哈哈哈哈7  | 哈哈哈哈哈7  | 哈哈哈哈哈7  | 哈哈哈哈哈7  | 哈哈哈哈哈7
      | 哈哈哈哈8  | 哈哈哈哈哈8  | 哈哈哈哈哈8  | 哈哈哈哈哈8  | 哈哈哈哈哈8
      | 哈哈哈哈9  | 哈哈哈哈哈9  | 哈哈哈哈哈9  | 哈哈哈哈哈9  | 哈哈哈哈哈9
     |哈哈哈哈哈10 | 哈哈哈哈哈10 | 哈哈哈哈哈10 | 哈哈哈哈哈10 | 哈哈哈哈哈10
     |哈哈哈哈哈11 | 哈哈哈哈哈11 | 哈哈哈哈哈11 | 哈哈哈哈哈11 | 哈哈哈哈哈11
     |哈哈哈哈哈12 | 哈哈哈哈哈12 | 哈哈哈哈哈12 | 哈哈哈哈哈12 | 哈哈哈哈哈12
     |哈哈哈哈哈13 | 哈哈哈哈哈13 | 哈哈哈哈哈13 | 哈哈哈哈哈13 | 哈哈哈哈哈13
     |哈哈哈哈哈14 | 哈哈哈哈哈14 | 哈哈哈哈哈14 | 哈哈哈哈哈14 | 哈哈哈哈哈14
     |哈哈哈哈哈15 | 哈哈哈哈哈15 | 哈哈哈哈哈15 | 哈哈哈哈哈15 | 哈哈哈哈哈15
     |哈哈哈哈哈16 | 哈哈哈哈哈16 | 哈哈哈哈哈16 | 哈哈哈哈哈16 | 哈哈哈哈哈16
     |哈哈哈哈哈17 | 哈哈哈哈哈17 | 哈哈哈哈哈17 | 哈哈哈哈哈17 | 哈哈哈哈哈17
     |哈哈哈哈哈18 | 哈哈哈哈哈18 | 哈哈哈哈哈18 | 哈哈哈哈哈18 | 哈哈哈哈哈18
     |哈哈哈哈哈19 | 哈哈哈哈哈19 | 哈哈哈哈哈19 | 哈哈哈哈哈19 | 哈哈哈哈哈19
     |哈哈哈哈哈20 | 哈哈哈哈哈20 | 哈哈哈哈哈20 | 哈哈哈哈哈20 | 哈哈哈哈哈20
    +--------------+--------------+--------------+--------------+---------------+
    20 rows in set (0.00 sec)3. 把你的文件本身从ascii格式改为utf8 without BOM(使用notepad++)
    然后:
    load data local infile "c:/haha.txt" into table jiangningshuiwu; (也可以加上charset 'utf8')总之根本原因是load local infile里用的字符集不一定就是你set names里指定的字符集。它的默认字符集应该是数据库本身的内部字符集。
      

  8.   


    SHOW CREATE TABLE XXX
    贴结果
    在统一的字符集下重新建立表、库,导入数据