mysql 工作台将 nvarchar 列转换为 varchar?

标签 mysql mysql-workbench

我的表格定义如下;

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/

相关文章:

mysql - TINYINT 如何在 MySQL 上存储字符串值

mysql分组排名与领带

mysql - Docker Compose mysql 环境变量与 Application .env 数据库变量。很困惑

c# - 将 nvarchar 值 ' undefined' 转换为数据类型 int 时转换失败

php - 回显 MySQL 查询的单个结果

mysql - 使用 g9 Spring Tool Suite 插件加载数据库模型时出错

mysql Workbench 插入默认值

mysql - 检查 MySQL 事务中的错误

mysql - 如何在 SQL 中执行条件插入

mysql - 无法成功解析 mysql 数据库信息