问题
MySQL官方网站提供了诸多免费的数据库操作工具,其中, Workbench是一款免费的极佳可视化数据库管理工具,你只需要下载最新版本,即可随心所欲地管理以往许多其他版本的数据库,当然配合适当的sql脚本更佳。
表操作中,我们经常遇到字符集修改不匹配的问题。例如,MySQL方默认的表字段字符集很可能是latin5_turkish_ci,此时想往表中插入数据就会遇到类似以下的错误提示:
[UPDATE ERROR] - ER_TRUNCATED_WRONG_VALUE_FOR_FIELD: Incorrect string value: '\xE5\x8F\xB8\xE9\xA9\xAC...' for column 'name' at row 1
我是在使用node.js连接MySQL表测试时出现上述问题的。有关代码如下:
var mysql=require('mysql');
var connection=mysql.createConnection({
host:'localhost',
user:'root',
password:'yourpassword',
database:'test'
});
connection.connect();
var modSql = 'UPDATE emp1 SET name = ?,age=?,about = ? WHERE code =4';
var modSqlParams = ['李白', 1000,'code4'];
//改
connection.query(modSql,modSqlParams,function (err, result) {
if(err){
console.log('[UPDATE ERROR] - ',err.message);
return;
}
console.log('--------------------------UPDATE----------------------------');
console.log('UPDATE affectedRows',result.affectedRows);
console.log('-----------------------------------------------------------------\n\n');
});
connection.end();
顺便说一下,WebStorm可以说是进行node.js服务器端开发的最佳工具。在使用“Node.js Express App”模板创建程序框架后,在根目录下创建下面的脚本文件即在启动WebStorm内部的控制台命令行运行上述代码文件:
node updatesql.js
办法
解决上述编码问题的办法有两种途径,一种是在命令行下使用脚本方式,一种是使用上面类似于workbench这种GUI工具更直观地修改。在此仅介绍GUI方式,脚本方式请参考附文有关引用地址。
操作步骤如下:
1) 右键单击表格,选择 “Alter Table”
2) 选中列名,下方“Collation”后可以选择具体字符集
3) 点击“Apply”按钮
参考下图:
参考文章
1,https://www.cnblogs.com/zhchoutai/p/7364835.html
2,http://www.jb51.net/article/68856.htm
3,https://www.cnblogs.com/xbq8080/p/6572133.html
4,https://www.cnblogs.com/flowingcloud/p/6235095.html