首页 > 解决方案 > mysql工作台将nvarchar列转换为varchar?

问题描述

我已将我的表格定义如下;

如果不存在则创建表testnotes( idINT(10) UNSIGNED NOT NULL AUTO_INCREMENT, clientidINT(10) NOT NULL,
useridINT(10) NOT NULL,
notesNVARCHAR(256) NULL DEFAULT NULL, createddatetimeTIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY ( id)) ENGINE = InnoDB 默认字符集 = utf8;

这里的注释列我定义为 navarchar,但最后它变成了 varchar 列。我使用的是 6.3 版本。这里有什么问题?

标签: mysqlmysql-workbench

解决方案


从 MySQL文档中,我们可以看到内部 MySQL 只会映射NVARCHARVARCHARUTF-8 字符集。该文档提到以下定义都是等效的:

VARCHAR(10) CHARACTER SET utf8
NATIONAL VARCHAR(10)
NVARCHAR(10)
NCHAR VARCHAR(10)
NATIONAL CHARACTER VARYING(10)
NATIONAL CHAR VARYING(10)

推荐阅读