【发布时间】:2017-08-16 08:10:12
【问题描述】:
我正在使用 MariaDb 服务器(版本 15.1 Distrib 10.2.7-MariaDB)。 当我执行时
CREATE TABLE `my_table` (
`id` INT NOT NULL,
`name` NVARCHAR(64) NULL,
PRIMARY KEY (`id`)
);
描述输出:
MariaDB [db]> describe my_table;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| name | varchar(64) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
为什么没有错误,而“name”列的数据类型是varchar(不是nvarchar)?
数据库架构详细信息:
Default collation: utf8_general_ci
Default characterset: utf8
【问题讨论】:
-
也许这部分文档会有所帮助:NATIONAL VARCHAR 是定义 VARCHAR 列应使用某些预定义字符集的标准 SQL 方法。 MariaDB 使用 utf8 作为此预定义字符集,MySQL 4.1 及更高版本也是如此
-
@Jens - 你真的比我快了 60 秒。恕我直言,这是“正确答案”。
-
@Jens - 许多版本的默认值仍然是
latin1。最后,在 8.0 中,默认值变为utf8mb4。