產生的緣由html
我在建立表的時候,並無設定字符編碼,因此,默認的字符編碼是 latin1前端
在我插入數據的時候,個人一個字段name設定的是varchar(20) 其實,這時的編碼就是 latin1 因此,在前端插入數據,在前端和node後端的數據都沒問題,可以正常顯示,可是插入就報錯,異常。node
解決辦法mysql
修改mysql中的字段的編碼,數據庫的編碼:sql
一、修改數據庫的編碼數據庫
mysql>alter database "數據庫名" character set utf8;後端
二、查看數據庫的編碼編碼
mysql> show variables like 'character_set_database';code
三、查看數據表的編碼格式htm
mysql> show create table "表名稱";
四、修改表的編碼格式
mysql> alter table "表名" character set utf8;
tips: 在你建立表的時候,你的編碼不是utf8,若是你的字段已經在修改編碼以前已經建立,你會發現,字段的編碼格式並無改變,因此須要使用下面的語句,針對字段進行編碼格式的修改。 看 第7句
五、建立數據庫時指定數據庫的字符集
mysql>create database "數據庫名" character set utf8;
六、建立數據表時指定數據表的編碼格式
create table tb_books ( name varchar(45) not null, price double not null, bookCount int not null, author varchar(45) not null ) default charset = utf8;
七、修改字段的編碼方式:
mysql>alter table <表名> change <字段名> <字段名> <類型> character set utf8;
示例:mysql>alter table user change username username varchar(20) character set utf8 not null;
八、 修改一張表全部字段的編碼格式
mysql>alter table 「表名」 convert to character set utf8;
九、添加外鍵
示例: mysql>\alter table tb_product add constraint fk_1 foreign key(factoryid) references tb_factory(factoryid);
mysql>alter table <表名> add constraint <外鍵名> foreign key <字段名> REFERENCES <外表表名> <字段名> ;
十、刪除外鍵
mysql>alter table 「表名」 drop foreign key 「外鍵名」;
參考連接 : https://www.cnblogs.com/codeplus/archive/2011/08/02/2125546.html