有多种可能:1数据类型不一致;2数据表引擎不一致 3数据库主从表字符集不同;等等...
查看方法 SHOW CREATE TABLE 你的表名\G;
例:SHOW CREATE TABLE `client`\G;
1数据类型不一致:修改为一致:ALTER TABLE `表名` MODIFY COLUMN `修改字段`;
例:
原:ALTER TABLE `info_agency`
MODIFY COLUMN `i_id` int(10) NOT NULL AUTO_INCREMENT;
改:ALTER TABLE `info_agency`
MODIFY COLUMN `i_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT;
注意:引号是波浪线那个键 ```````。
mysql> ALTER TABLE `info_agency` MODIFY COLUMN `i_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT;
Query OK, 0 rows affected (0.07 sec)
Records: 0 Duplicates: 0 Warnings: 0
2数据表引擎不一致:修改为一致:ALTER TABLE `表名` ENGINE=`引擎`;
例:
ALTER TABLE `client` ENGINE=`innoDB`;
mysql> ALTER TABLE `client` ENGINE=`innoDB`;
Query OK, 0 rows affected (0.26 sec)
Records: 0 Duplicates: 0 Warnings: 0
3如果建立主、从表时,数据库的 DEFAULT CHARACTER SET 不一致,也会出现这个错误!----感谢评论mahu98博主的帮助。
关于如何修改库、表、字段的字符集,详见明王不动心的博文:https://www.cnblogs.com/yangmingxianshen/p/7999428.html