解决mysql不能插入中文Incorrect
分类:关于美高梅

; 然后创建一个数据表 create table a_table(b varchar(255) not null); insert into a_table values('北京'); 这个时候插入的是中文,系统...

4: 唯一约束  --不允许有重复的值
    drop table if exists t_4;
    create table t_4(
        id int,
        age tinyint,
        constraint un_id unique(id)    --创建一个唯一约束给id字段, constraint un_id给这个唯一约束取名为un_id;
    );
    desc t_4;
    show create table t_4G

选项default-charaset-set=utf8;

3: 列注释(comment)
    create table t_3(
        id tinyint(2) zerofill not null default 18 comment '编号',
        name varchar(30) comment '姓名'
    );
    use information_schema;
    show tables;
    desc information_schema.columns;
    select table_schema, table_name, column_name, column_comment from information_schema.columns;
    select table_schema, table_name, column_name, column_comment from information_schema.columns where table_schema = 'test' and table_name = 't_3';
*******************************************************************************************************************

这个时候插入的是中文,系统会报告错误:Incorrect string value: 'xB1xB1xBExA9' for column 'b' at;

    例: insert into t_4 values(1, 2);
    例: insert into t_4 values(1, 2);        --报错, id值要是唯一的
    例: alter table t_4 drop index un_id;    --删除唯一约束 un_id(约束名);
    例: alter table t_4 add unique(id);      --增加唯一约束,
    ps: 约束名可以不用写, 如果不写的话则会默认的创建一个唯一约束名字,可以通过show create table t_4G 来查看约束名;
        例: alter table t_4 drop index id;

insert into a_table values('北京');

    ps: 可以设置组合主键
    drop table if exists t_8;
    create table t_8(
        a int,
        b tinyint,
        primary key(a, b)
    );        
    例: insert into t_8 values(1,2);
    例: insert into t_8 values(1,3);
    例: insert into t_8 values(1,3);
********************************************************************************************************************

然后创建一个数据表 create table a_table(b varchar(255) not null);

6: 自动增长(auto_increment)
    create table t_9(
        id int primary key auto_increment,
        name varchar(30)
    );
    例: insert into t_9 values(null, '胖胖');      --如果添加了auto_increment,主键值可以用null来表示插入,但真正插入的并不是null值
    例: insert into t_9 values(null, '小明');
    例: insert into t_9 values(null, '小红');
    例: insert into t_9(name) values('哈哈');
        insert into t_9 values('小哈');            --报错
    ps: 自动增长需要整形和索引
        例: create table t_9(                      --报错
                id int auto_increment
            );

这个不能插入中文。如果该语句写在了一个文本文件中进行批处理操作,保存的编码是默认的话也会出现这种的错误提示。

    例: insert into t_4 values(null, null);
    例: insert into t_4 values(null, null);  --唯一约束允许null值的重复
*******************************************************************************************************************

解决办法:把文本文件存成utf-8格式的就可以正确执行。

2: 默认值属性(default)
    create table t_2(
        a tinyint(2) zerofill not null default 18,
        b tinyint(2)
    );
    例: insert into t_2(b) values(19);
*******************************************************************************************************************

    自动增长的初始值从1开始, 可以自定义这个初始值
    create table t_10(                    
        id int primary key auto_increment
    );
    例: alter table t_10 auto_increment 10;              --把自动增长的初始值 设置为10
    例: insert into t_10 values();
    例: insert into t_10 values(50);
    例: insert into t_10 values();                         --自动增长会从已有的最大值开始增长;
********************************************************************************************************************

列属性(约束)
1: 是否允许为空(not null)  --not null不允许为空
create table t_1(
    a tinyint(3) zerofill not null,
    b tinyint(3)
);
例: insert into t_1 values(18,29);
例: insert into t_1 values(null,12);  --报错
例: desc t_1;
例: alter table t_1 modify a tinyint(3) not null zerofill;  --报错zerofill不能数据类型分开
例: insert into t_1(a) values(19);
例: insert into t_1(b) values(28);

    ps: 一个表中只能有一个主键;
    drop table if exists t_7;
    create table t_7(
        a int,
        b int
    );
    alter table t_7 modify a int primary key;    --添加主键
    alter table t_7 modify b int primary key;    --报错 一个表中只能有一个主键;
    alter table t_7 drop primary key;            --删除主键

*******************************************************************************************************************

5: 主键约束(primary key)
    create table t_6(
        t_no int(1) primary key,
        t_name varchar(30),
        t_sex varchar(3)
    );
    例: desc t_6;
    例: insert into t_6 values(null, '胖胖', '男');   --报错 主键值不能为null, 在创建主键时也会默认把字段设置not null
    例: insert into t_6 values(1, '胖胖', '男');
    例: insert into t_6 values(1, '小明', '男');      --报错 主键值不能重复

本文由美高梅网址发布于关于美高梅,转载请注明出处:解决mysql不能插入中文Incorrect

上一篇:2008服务器配置FTP站点 下一篇:mysql添加用户和密码,MySql增加用户
猜你喜欢
热门排行
精彩图文