MYSQL AutoCreateTable True latin1

May 28, 2009 at 4:03 PM

MYSQL 里面AutoCreateTable=true的时候自动

 

CREATE TABLE `xxx` ( ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

有办法设为utf8吗
Coordinator
Jun 1, 2009 at 5:00 AM

DbEntry生成的Create Table语句并不包含CHARSET,对于MySql来说,安装的时候选择utf8的话,DbEntry创建的表就是utf8的了。

Jun 1, 2009 at 6:59 AM

嗯,我个人建议是否能在哪加上createtable编码设置呢。

比如有些虚拟主机的数据库是人家给你建立好的,你没有权限修改。

如果是latin1的话,没有办法输入中文,读中文也读不出。。。。

总之,更方便。

------------------------------------------------------------------------------------------------

CreateTableStatementBuilder的class里面第83行

 

 sql.Append("\n);\n");

这里能否判断一下,如果是MYSQL,并且web.config里面定义Mysql charset 是utf8的话就就加上default charset=xxx呢

            if (HasOneDbGenKey())

            {

 

Jun 1, 2009 at 7:05 AM

额,其实我知道了。

我用ALTER TABLE `bbbb` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci

就可以了,每次新建表后执行一次这个命令

Jun 1, 2009 at 7:06 AM

虽然麻烦了点,但是可以绕过现在这个问题,。。

Coordinator
Jun 1, 2009 at 8:13 AM

你建议的方法有点儿罗嗦了,我现在倒是觉得,生成MySql表的时候,都设置成utf8就好了。

Jun 1, 2009 at 10:36 AM

都弄成utf8也不好,有的人喜欢用gb2312的mysql比如现在discuz之类的,有人喜欢用gbk有人喜欢utf8,个人喜好不太一样,我个人偏好utf8,可能老外喜欢latin吧,我猜

Jun 1, 2009 at 10:42 AM

我现在是一律utf8伺候

<add key="Se.DataBase" value="@MySql : server=嘻嘻;user id=manwang; password=; database=sipo1209; pooling=true; charset=utf8;"/>这个链接串里的utf8还蛮有用哈