zoukankan      html  css  js  c++  java
  • node操作mysql插入数据异常,incorrect string value

    产生的原因

    我在创建表的时候,并没有设定字符编码,所以,默认的字符编码是 latin1

    在我插入数据的时候,我的一个字段name设定的是varchar(20) 其实,这时的编码就是 latin1 所以,在前端插入数据,在前端和node后端的数据都没问题,能够正常显示,但是插入就报错,异常。

    解决办法

    修改mysql中的字段的编码,数据库的编码:

    1、修改数据库的编码

    mysql>alter database "数据库名" character set utf8;

    2、查看数据库的编码

    mysql> show variables like 'character_set_database';

    3、查看数据表的编码格式

    mysql> show create table "表名称";

    4、修改表的编码格式

    mysql> alter table "表名" character set utf8;

    tips: 在你创建表的时候,你的编码不是utf8,如果你的字段已经在修改编码之前已经创建,你会发现,字段的编码格式并没有改变,所以需要使用下面的语句,针对字段进行编码格式的修改。 看 第7句

    5、创建数据库时指定数据库的字符集

    mysql>create database "数据库名" character set utf8;

    6、创建数据表时指定数据表的编码格式

    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;
    

    7、修改字段的编码方式:

    mysql>alter table <表名> change <字段名> <字段名> <类型> character set utf8;

    示例:mysql>alter table user change username username varchar(20) character set utf8 not null;

    8、 修改一张表所有字段的编码格式

    mysql>alter table “表名” convert to character set utf8;

    9、添加外键

    示例: mysql>alter table tb_product add constraint fk_1 foreign key(factoryid) references tb_factory(factoryid);
    mysql>alter table <表名> add constraint <外键名> foreign key<字段名> REFERENCES <外表表名><字段名>;

    10、删除外键

    mysql>alter table “表名” drop foreign key “外键名”;

    参考链接 : https://www.cnblogs.com/codeplus/archive/2011/08/02/2125546.html

  • 相关阅读:
    Vue基础进阶 之 过渡效果
    Vue基础进阶 之 自定义指令
    Vue基础进阶 之 实例方法--生命周期
    Vue基础进阶 之 实例方法
    Vue基础进阶 之 常用的实例属性
    Vue基础进阶 之 计算属性的使用
    Vue基础进阶 之 Vue生命周期与钩子函数
    JavaScript 条件判断算法综合实战
    (KMP)Simpsons’ Hidden Talents -- hdu -- 2594
    (并查集)Travel -- hdu -- 5441(2015 ACM/ICPC Asia Regional Changchun Online )
  • 原文地址:https://www.cnblogs.com/xiaqilin/p/8698267.html
Copyright © 2011-2022 走看看