mysql中insert语句出现错误

在insert语句中,先创建一个下面这样的表,但是在插入语句时,name 为 'zhangsan' 插入成功了,name 为 '张三'确实插入错误,这问题出在哪里呢?

CREATE TABLE test(
id INT PRIMARY KEY,
NAME VARCHAR(32))

INSERT INTO test(id,NAME)
VALUES(1,'张三')

INSERT INTO test(id,NAME)
VALUES(2,'zhangsan')

本质还是数据库字符集的问题,按以下步骤执行下:
修改表字符集:alter table test character set utf8;
修改字段字符集:alter table test modify name varchar(20) character set utf8;
再执行:INSERT INTO test(id,NAME) VALUES(1,'张三')

有帮助的话,请点采纳该答案~

该回答引用GPTᴼᴾᴱᴺᴬᴵ
这个问题是因为在创建表时没有指定字符集,MySQL使用的默认字符集可能不支持某些特殊字符,导致插入数据时出现错误。

您可以在创建表时指定字符集为UTF-8,如下所示:

CREATE TABLE test(
id INT PRIMARY KEY,
NAME VARCHAR(32) CHARACTER SET utf8mb4)


这样就可以支持更多的字符集了,插入数据时就不会出现上述问题。