Mysql批量导入约束报错

导入sql文件

先看下导入的SQL文件中有没有drop database或者drop table字样,这个要小心。

方案一:适合小文件

SET foreign_key_checks = 0;  -- 禁用外键,在文件顶部加
-- sql语句
SET foreign_key_checks = 1;   -- 恢复外键,在文件底部加

方案二:适合大文件

mysql -h 服务器ip -P 3306 -u root -p    -- 连接mysql,不直接指定密码为了安全考虑,这里写密码是明文
show databases;   -- 查看所有数据库
use db;   -- 选择数据库
source d:/data.sql;   -- 导入数据文件

当数据中心包含中文时,中文

ERROR 1366 (HY000): Incorrect string value: 'xC1xBA' for column 'leavingOperatorName' at row 1

show create table tblName;    -- 查看创建数据表时的语句指定的存储引擎及编码格式
status;  -- 查看数据库的状态信息
show full columns from tablename;  -- 查看表的列的属性

如果是lant改变列编码为utf-8

alter table tablename change columnsname columnsname varchar(255) 
character set utf8 collate utf8_unicode_ci not null default ''; 

如果上面都没有问题,source之后依然报这个错,那可能是导出的txt文件编码格式的问题。用ultraedit打开,改为UTF-8即可。

原文地址:https://www.cnblogs.com/aeolian/p/9376633.html