我正在尝试将数据从管道定界文件导入mysql。创建表即可。但是,当我尝试导入数据时,出现此错误“错误1467(HY000):无法从存储引擎读取自动增量值”。
我已经在网站上检查了可能的错误,但没有任何答案。以下是我正在使用的脚本。我对MySql很陌生。

SELECT 'Changing database..' as '';
use test

SELECT 'Droing table if it exists' as '';
DROP TABLE IF EXISTS table1;

CREATE TABLE IF NOT EXISTS table1
(
   id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
   infohash VARCHAR(100) NOT NULL,
   categories VARCHAR(100) DEFAULT NULL,
   info_url VARCHAR(300) NOT NULL,
   download_url VARCHAR(300) DEFAULT NULL,
   PRIMARY KEY (id)
);

SHOW TABLES;

LOAD DATA  INFILE '/usr/Software/sample.txt'

    INTO TABLE table1
    CHARACTER SET utf8
    COLUMNS
        TERMINATED BY '|'
    LINES
        TERMINATED BY '\n'
    ;
SELECT 'Total rows in table' as '';
select count(*) from table1;


这是我得到的输出。

mysql> source table_creattion.sql
+---------------------+
|                     |
+---------------------+
| Changing database.. |
+---------------------+
1 row in set (0.00 sec)

Database changed
+---------------------------+
|                           |
+---------------------------+
| Droing table if it exists |
+---------------------------+
1 row in set (0.00 sec)

Query OK, 0 rows affected, 1 warning (0.00 sec)

Query OK, 0 rows affected (0.01 sec)

+----------------+
| Tables_in_test |
+----------------+
| table1         |
+----------------+
1 row in set (0.00 sec)

ERROR 1467 (HY000): Failed to read auto-increment value from storage engine
+---------------------+
|                     |
+---------------------+
| Total rows in table |
+---------------------+
1 row in set (0.00 sec)

+----------+
| count(*) |
+----------+
|        0 |
+----------+
1 row in set (0.00 sec)


我不确定为什么会出现此错误。任何人?

最佳答案

尝试添加您的字段名称以插入语句,如下例所示。
如我所见,在sample.txt上,您不必具有id列的值。
请分享来自sample.txt的一些示例行,以获得更好的定位。

LOAD DATA  INFILE '/usr/Software/sample.txt'

    INTO TABLE table1
(infohash,categories, info_url, download_url )
    CHARACTER SET utf8
    COLUMNS
        TERMINATED BY '|'
    LINES
        TERMINATED BY '\n'
    ;

09-10 22:51
查看更多