MYSQL数据库保存拼音失败处理

问题描述:在数据库保存拼音时数据库提示主键冲突,具体如下:要保存的信息为fèn,fēn;但保存了fēn之后数据库提示冲突;

原因分析:fèn,fēn在数据库中被认为是同一字符,导致主键冲突保存失败;

解决:大家在创建数据库或者表格的时候指定charset=utf8,数据库就能识别所有的字符,结果往往不是如此;mysql使用charset指定字符,如何存储却依靠另一个参数--collation--来指定排序规则。这个collation正是mysql是否区分大小写,是否区分声调字符的关键。每个charset有一个默认的collation。utf-8默认的为utf8-general-ci,ci表示case insensitive,即不区分大小写。如果需要区分,可以指定charset=utf8 collation=utf8_bin。

建表DEMO;

CREATE TABLE `t_wrod_voice` (

  `word_id` int(10) NOT NULL COMMENT '字库ID',

  `voice` varchar(64) NOT NULL COMMENT '发音',

  `voice_file` varchar(64) DEFAULT NULL COMMENT '音频文件',

  PRIMARY KEY (`word_id`,`voice`)

) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='字库发音表';

改表DEMO;

ALTER TABLE T_WORD_VOICE CONVERT TO CHARACTER SET utf8 COLLATE=utf8_bin ;

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容