Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql工作台将nvarchar列转换为varchar?_Mysql_Mysql Workbench - Fatal编程技术网

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

mysql工作台将nvarchar列转换为varchar?,mysql,mysql-workbench,Mysql,Mysql Workbench,我已将我的表格定义如下: 如果不存在,则创建表测试注释(idINT(10) 无符号非空自动增量,clientidINT(10)非空, useridINT(10)不为空, notesNVARCHAR(256)NULL默认为NULL,createddatetimeTIMESTAMP 非空默认当前时间戳,主键(id)引擎=InnoDB默认字符集=utf8 在这里,我将notes列定义为navarchar,但最后它变为varchar列。我使用的是6.3版本。这里出了什么问题?从MySQL中,我们可以看到

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

如果不存在,则创建表
测试
注释
id
INT(10) 无符号非空自动增量,
clientid
INT(10)非空,
userid
INT(10)不为空,
notes
NVARCHAR(256)NULL默认为NULL,
createddatetime
TIMESTAMP 非空默认当前时间戳,主键(
id
)引擎=InnoDB默认字符集=utf8

在这里,我将notes列定义为navarchar,但最后它变为varchar列。我使用的是6.3版本。这里出了什么问题?

从MySQL中,我们可以看到,MySQL内部只会使用UTF-8字符集将
NVARCHAR
映射到
VARCHAR
。文件中提到以下定义都是等效的:

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

那么,我对nvarchar列的定义是对的?我可以插入非英语字符(例如:日语),没有任何问题?@Ratha检查该列的字符集,但是是的,如果是UTF-8,它应该能够支持日语。谢谢,它显示为utf8。对于varchar列,它也显示为utf8。我应该明确地将列定义为nvarchar吗?用字符集定义在模式定义上定义就足够了吗?如果不存在,则创建架构
test
默认字符集utf8;