我的表格定义如下;
CREATE TABLE IF NOT EXISTS
test
.notes
(id
INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,clientid
INT(10) NOT NULL,
userid
INT(10) NOT NULL,
notes
NVARCHAR(256) NULL DEFAULT NULL,createddatetime
TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id
)) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8;
这里我将注释列定义为 navarchar,但最终它变成了 varchar 列。我使用的是 6.3 版本。这里出了什么问题?
最佳答案
来自 MySQL documentation ,我们可以看到MySQL内部只会将NVARCHAR
映射到具有UTF-8字符集的VARCHAR
。文档提到以下定义都是等效的:
VARCHAR(10) CHARACTER SET utf8
NATIONAL VARCHAR(10)
NVARCHAR(10)
NCHAR VARCHAR(10)
NATIONAL CHARACTER VARYING(10)
NATIONAL CHAR VARYING(10)
关于mysql 工作台将 nvarchar 列转换为 varchar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58850167/