sqlserver 数据传输到 mysql
查看mysql和sqlserver数据库的默认编码方法
mysql:
show variables like 'character\_set\_%';
show variables like 'collation_%';
sqlserver:
SELECT COLLATIONPROPERTY('Chinese_PRC_Stroke_CI_AI_KS_WS', 'CodePage')
下面是查询结果:
936 简体中文GBK
950 繁体中文BIG5
437 美国/加拿大英语
932 日文
949 韩文
866 俄文
65001 unicode UFT-8
中文占字节数
GBK的文字编码是双字节;
UTF-8编码则,中文使用24位(三个字节)来编码;
sqlserver 单用户与多用户切换方式:
执行SQL ALTER DATABASE db_database SET SINGLE_USER WITH ROLLBACK IMMEDIATE
修改为单用户模式
执行SQL ALTER DATABASE db_database SET MULTI_USER
再修改为多用户模式
创建字符集为gbk的mysql数据库: MYSQL创建utf-8格式的数据库 先mysql进入: 代码 GBK: create database test2 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci; UTF8: CREATE DATABASE `test2` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; [root@linuxtest test]# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 5 Server version: 5.1.30-community MySQL Community Server (GPL) Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> CREATE DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; Query OK, 1 row affected (0.06 sec) mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | cacti | | mysql | | test | | +--------------------+ 5 rows in set (0.07 sec) 这个test库就是utf-8格式的
对于字符编码格式不一致的数据传输问题:【sqlserver gbk编码,mysql utf8编码】
解决思路:新建一个mysql数据库,gbk编码,然后再通过数据传输,将数据传输到utf8编码的mysql数据库中
将一个表的数据插入到另一个表中
insert into tb_grade (GradeName,NClassId) SELECT g.`GradeName`, cg.`NClassID`FROM `grade` g INNER JOIN `classgrade` cg ON cg.`ClassGradeType`=g.`ClassGradeType` order by NClassId, GradeId asc