我在这个论坛上阅读了不同的文章和主题,以帮助我为我的数据库设置字符集排序&排序规则。不确定我所做的选择。我将不胜感激任何意见或建议。MySql混合字符集和排序规则
我正在使用mysql 5.5。 数据库(用于php)将有不同语言(中文,法文,荷兰文,美国,西班牙文,阿拉伯文等)的一些数据。我将主要插入数据并从表ID中获取信息。我不需要全面搜索和比较文本。
因此,这里是我做了什么来创建我的数据库,我决定使用charset utf8mb4和整理utf8mb4_unicode_ci
ALTER DATABASE testDB CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
当我创建表:
CREATE TABLE IF NOT EXISTS sector (
idSector INT(5) NOT NULL AUTO_INCREMENT,
sectoreName VARCHAR(45) NOT NULL DEFAULT '',
PRIMARY KEY (idSector)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 AUTO_INCREMENT=0;
对于一些表,我认为最好使用utf8_bin 例如:时区(包含168 047行)
CREATE TABLE timezone (
zone_id int(10) NOT NULL,
abbreviation varchar(6) COLLATE utf8_bin NOT NULL,
time_start decimal(11,0) NOT NULL,
gmt_offset int(11) NOT NULL,
dst char(1) COLLATE utf8_bin NOT NULL,
KEY idx_zone_id (zone_id),
KEY idx_time_start (time_start)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=0;
所以基本上我想知道如果我是在右边,或者如果我正在做的事情可能导致问题
谢谢您的阅读。 Regards
你知道,MySQL有内置的时区支持。 https://dev.mysql.com/doc/refman/5.7/en/time-zone-support.html如果您自己重新实现它,则您将拥有时区更新。这是一场噩梦。除非必须,否则不要这样做。认真。 –