今天导入数据时,发生错误1261,信息如下:
ERROR 1261 (01000): Row 1 does not contain data for all columns
ERROR 1262 (01000): Row 1 was truncated; it contained more data than there were input columns
这个错误的原因是数据文件中的列数跟 MySQL 数据表字段数目没有完全匹配,并且 sql_mode 设为 strict 模式。
查看数据后发现是有一个字段的数据中存在“\”,可能是这个字符导致的错误,设置了转义字符为“\\”,但还是不行,一会儿还要好好研究一下,当前的解决方式如下:
先查询当前的sql_mode,再设置sql_mode的模式。
mysql> show variables like 'sql_mode';
+---------------+----------------------------------------------------------------+
| Variable_name | Value |
+---------------+----------------------------------------------------------------+
| sql_mode | strict_trans_tables,no_auto_create_user,no_engine_substitution |
+---------------+----------------------------------------------------------------+
set sql_mode='';
测试发现当Error 1265 时,使用相同的方式也能解决问题。我的数据库中存在可为空的double类型的字段,文件中该字段有些数据为空,这样在导入数据时,发生1265的错误。使用上述方法设置sql_mode后,问题解决,数据导入成功且无误,只是完成结果提示有警告。
分享到:
相关推荐
在MySQL中,`LOAD DATA INFILE` 是一种高效的数据导入工具,用于将数据从文本文件快速导入到数据库表中。然而,在使用过程中可能会遇到错误1290,这是由于MySQL服务器运行时启用了 `--secure-file-priv` 选项导致的...
如果MySQL服务器不允许本地文件导入,或者在编译安装时未启用`--enable-local-infile`选项,你可能会遇到错误`ERROR 1148 (42000): The used command is not allowed with this MySQL version`。解决这个问题的方法...
默认情况下,它可能被设置为一个特定的目录,比如`C:/ProgramData/MySQL/MySQL Server 5.7/Uploads`,只有在这个目录下,MySQL才允许执行`LOAD DATA INFILE`和`SELECT ... INTO OUTFILE`等涉及文件读写的操作。 ...
根据给定文件的信息,我们可以梳理出与`load_file()`函数相关的敏感信息及系统配置路径,主要涉及了在不同操作系统下的文件路径以及通过SQL注入时如何利用`load_file()`函数读取这些敏感文件。 ### `load_file()`...
LOAD DATA INFILE '/usr/local/mysql/data/test.sql' INTO TABLE test CHARACTER SET utf8; ``` 3. **注意事项**: - 在使用 `LOAD DATA INFILE` 时,必须确保文件存在于 MySQL 的 `data` 目录下。 - 如果文件...
使用`LOAD DATA INFILE`语句将TXT文件中的数据导入到MySQL表中。 ```sql LOAD DATA LOCAL INFILE 'D:\\cccccc.txt' INTO TABLE book FIELDS TERMINATED BY '\t'; ``` 如果只想导入Excel中的某几列,可以在`INTO ...
7.11 DELETE (删除)句法 7.12 SELECT (精选)句法 7.13 JOIN (联接)句法 7.14 INSERT (插入)句法 7.15 REPLACE (替换)句法 7.16 LOAD DATA INFILE (装载数据到文件)句法 7.17 UPDATE ...
7.16 LOAD DATA INFILE (装载数据到文件)句法 7.17 UPDATE (更新)句法 7.18 USE (使用)句法 7.19 FLUSH (清除缓存)句法 7.20 KILL (杀灭)句法 7.21 SHOW (显示)句法(得到关于表,列等...
* 2 MySQL 邮件列表及如何提问或报告错误 o 2.1 MySQL邮件列表 o 2.2 提问或报告错误 o 2.3 怎样报告错误或问题 o 2.4 在邮件列表上回答问题的指南 * 3 MySQL的许可证和技术支持 o 3.1 MySQL的许可证政策 o ...
总的来说,MySQL提供了强大的数据导入功能,通过熟练掌握`LOAD DATA INFILE`和`SOURCE`命令,可以有效地管理数据库中的数据。在实际工作中,结合文件处理工具和数据预处理,能让你更高效地完成数据导入任务。
`load data infile`和`mysqlimport`在某些方面是相似的,都能用于数据导入,但它们处理文件位置的方式不同。 `mysqlimport`的默认行为是期望文件位于服务器端,即MySQL服务运行的主机上。当不使用`--local`选项时,...
通过禁用`FILE`权限,可以防止攻击者利用`LOAD DATA INFILE`等功能读取服务器上的文件。这可以在`my.cnf`中设置: ```ini [mysqld] secure-file-priv= ``` #### 11. MySQL服务器权限控制 合理设置用户的权限是非常...
在MySQL Workbench中,使用`LOAD DATA INFILE`命令将备份文件导入到对应的表中。开始时没有禁用外键检查,导致了Error Code: 1451,因为存在外键约束冲突。解决办法是在执行`LOAD DATA INFILE`之前,设置`FOREIGN_...
- **从文本文件导入数据到表:** `LOAD DATA LOCAL INFILE "D:/mysql.txt" INTO TABLE MYTABLE;` - **导入SQL文件:** - 首先选择数据库:`USE database;` - 然后执行:`SOURCE D:/mysql.sql;` #### 七、数据...
SELECT`、`LOAD DATA INFILE` 等操作时。 - **作用范围**: 全局或会话级别。 - **配置**: 可以在配置文件中设置。 - **动态性**: 动态变量,可以在运行时通过`SET`命令更改。 - **默认值**: 8MB。 - **取值范围**: ...
一种常见的方式是使用`Statement`或`PreparedStatement`的`executeQuery()`或`executeUpdate()`方法执行SQL命令,如`LOAD DATA INFILE`和`SELECT ... INTO OUTFILE`来导入和导出数据。这些命令可以直接在SQL语句中...
限制用户加载外部文件的能力,避免通过`LOAD DATA INFILE`命令读取系统敏感文件,如/etc/passwd。 #### 18. DNS与IP地址验证 对于远程访问请求,不仅依赖DNS名称,还应验证IP地址,确保访问来源的合法性。 #### ...
Bug with the "BAD HANDSHAKE" error on connecting to some versions of MySQL server in the MySQL provider is fixed Bug with processing key fields on record posting is fixed Bug with empty string ...