Home > Database > Mysql Tutorial > Navicat for SQL使用注意(设置默认字符集,外键保存不了)

Navicat for SQL使用注意(设置默认字符集,外键保存不了)

WBOY
Release: 2016-06-07 14:51:13
Original
3144 people have browsed it

最近用mysqlNavicat for sql开发项目时遇到了以下问题: 1.默认创建的数据库,字符集编码为:latin1 -- cp1252 West European 在数据库中存储中文时会出现乱码错误 2.用Navicat给数据库添加外键约束时,保存不了,保存后消失 解决方案: 1对于字符集问题有3

Copy after login

最近用mysql+Navicat for sql开发项目时遇到了以下问题:

1.默认创建的数据库,字符集编码为:latin1 -- cp1252 West European

     在数据库中存储中文时会出现乱码错误


2.用Navicat给数据库添加外键约束时,保存不了,保存后消失



解决方案:

1对于字符集问题有3种解决方式,设置字段字符集,表的字符集,数据字符集

其中设置字段字符集,表的字符集方法较笨,需要一个一个的设置,这里就简要说明下:


在navicat中选择要操作的表,选择“设计”,将光标放置在要修改的字段上,即可在下方修改该字段的字符集


同上,选择”设计“后,在选项中可以看到字符集一栏,修改后就完成了表的字符集修改

最后说下修改数据库的默认字符集,修改数据库的默认字符集必须在创建数据库的时候完成,如果数据库中已存在其他字符集的表,字段,则修改不会生效

如下图,在新建数据库时设置字符集




2.对于外键约束保存不了或者保存后消失的,有两个原因

1)数据库的FOREIGN_KEY_CHECKS=0;所有外键约束被禁用了

查看当前FOREIGN_KEY_CHECKS的值可用如下命令

    SELECT  @@FOREIGN_KEY_CHECKS;

之后再用
    SET FOREIGN_KEY_CHECKS=1;
来启动外键约束.

2) MySQL 中只有 InnoDB 类型的表才支持外键与存储过程 

所有要建立外键的字段必须建立索引

创建数据库时设置表类型为InnoDB


CREATE TABLE `roottb` (
`id` INT(11) UNSIGNED AUTO_INCREMENT NOT NULL,
`data` VARCHAR(100) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) TYPE=InnoDB;
Copy after login

在Navicat中,新建表时,在选项中设置引擎为InnoDB



source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template