无法在MariaDb/Mysql中创建NVARCHAR列
我正在使用MariaDb服务器(版本15.1发行版10.2.7-MariaDb)。 当我执行无法在MariaDb/Mysql中创建NVARCHAR列,mysql,sql,mariadb,Mysql,Sql,Mariadb,我正在使用MariaDb服务器(版本15.1发行版10.2.7-MariaDb)。 当我执行 CREATE TABLE `my_table` ( `id` INT NOT NULL, `name` NVARCHAR(64) NULL, PRIMARY KEY (`id`) ); 描述输出: MariaDB [db]> describe my_table; +-------+-------------+------+-----+---------+-------+ | F
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
NVARCHAR
是MySQL/MariaDB中VARCHAR
的同义词。但是您需要添加字符集utf8mb4
,以确保获得完全的UTF-8支持
显示为该数据库默认值的只是名为“utf8”的子集。它不会处理表情符号或一些中文。也许这部分文档有帮助:NATIONAL VARCHAR是标准的SQL方法,用于定义VARCHAR列应该使用一些预定义的字符集。MariaDB使用utf8作为这个预定义的字符集,MySQL 4.1和up@Jens-你真的比我快了60秒。这是正确的答案。@Jens-对于许多版本,默认值仍然是
latin1
。最后,在8.0中,默认设置为utf8mb4
。