繁体   English   中英

MySQL的。 无法将俄语字符插入类型为VARCHAR(45)的列中

[英]MySQL. Can't insert russian characters into column with a type VARCHAR(45)

尝试在MySQL(Workbench)中执行此行时遇到问题:

INSERT INTO classification (`Type`, `Subtype`) VALUES ("тип", "подтип");

我尝试为表classification设置不同的字符集:cp1251,utf-8,utf8mb4,cp1251_bin。

这是一个表,其中包含我在数据库中找到的所有字符集,也许会对您有所帮助:

在此处输入图片说明

UPD。 我找到了解决方案。 但是,我必须更改表,所以现在表risk是已编辑的表classification SHOW CREATE TABLE risk的结果是:

 'CREATE TABLE `risk` (
  `IdRisk` int(11) NOT NULL AUTO_INCREMENT,
  `IdSubtype` int(11) DEFAULT NULL,
  `Content` varchar(4000) CHARACTER SET utf8 DEFAULT NULL,
  PRIMARY KEY (`IdRisk`),
  KEY `FK_subtype_risk_idx` (`IdSubtype`),
  CONSTRAINT `FK_subtype_risk` FOREIGN KEY (`IdSubtype`) REFERENCES `subtype` (`IdSubtype`) ON DELETE SET NULL ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=48 DEFAULT CHARSET=latin1'

找不到解决此问题的方法。 我希望有人知道解决方案。

谢谢!

该表的CHARACTER SET是该表中列的默认设置 请提供SHOW CREATE TABLE以便我们可以验证列设置为什么。

客户端中字节的编码是什么? cp1251utf8不同; utf8mb4 == utf8 (俄语)。

事情以什么方式不好? 根据症状,看到其他可能被错误地设置具体的提示。

也许是您对NVARCHAR所做的更改导致在列上强制使用CHARACTER SET utf8

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM