字段也不要设置成中文的
设置成中文的可能出现错误
create table 新闻表 (
newID int ,
title varchar(30),
content varchar(400),
writerdate varchar(40)
);
create table news (
newID int ,
title varchar(30),
content varchar(400),
writerdate varchar(40)
) engine = innodb;
//没有错误
INSERT into news values(1,'啊啊','a',1);
//没有错误
CREATE PROCEDURE proc_studentCountBySex
(
in new_id int ,
out is_success int
)
begin
set is_success=(select newID from news where newID=new_id);
end;
drop procedure proc_studentCountBySex;
set @number=0;
call proc_studentCountBySex(1,@number);
select @number;
//创建没有错误
CREATE PROCEDURE proc_add
(
in new_id int ,
in title varchar(30) CHARACTER set utf8,
in content varchar(40) CHARACTER set utf8,
in writerdate int
)
begin
INSERT into news(newID ,title ,content ,writerdate)
values(new_id,title,content,writerdate);
end;
drop procedure proc_add;
use king ;
//通过存储过程进行的操作出现编码相关的错误 正常插入没错 mysql中的对象都伴随着编码 ,所以需要修编码
call proc_add(14,'意义','完全',100);
call proc_add(14,'a','a',100);
select * from news;
ALTER TABLE `新闻表` DEFAULT CHARACTER SET='utf8
set names utf8;
show variables like 'char%';
SET character_set_server= utf8;
/**
真心不容易,问题解决了!确实是编码的问题!
使用mysql migration toolkit 把ms sql server导入到mysql中,
在Object Mapping 选项时
修改migration of type mssql schema 中的 set parameter 选择 Multilanguage
修改migration of type mssql table 中的 set parameter 选择 Data consistency/Multilanguage
还有就是
修改my.ini文件 下的
[mysql]default-character-set=utf8
和
[mysqld]character-set-server=utf8
这样就确保了,mysql中的编码类型,
用show variables like 'char%';查看得到如下:
character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_filesystem binary
character_set_results utf8
character_set_server utf8
character_set_system utf8
/