为什么数据插不进去啊

来源:2-7 完整性约束条件介绍

z晓龙

2019-08-15 17:50:28

-- 用户表
CREATE TABLE IF NOT EXISTS imooc_user(
    id INT,
    username VARCHAR(20),
    password CHAR(32),
    email varchar(50),
    age TINYINT,
    card CHAR(18),
    tel CHAR(11),
    salary FLOAT(8,2),
    married TINYINT(1),
    addr VARCHAR(100),
    sex ENUM('男','女','保密')
)ENGINE=INNODB CHARSET=UTF8;

-- INSERT [INTO] tbl_name(id,username,...) VALUES(1,'king',...)

-- 向imooc_user表插入一条记录
INSERT imooc_user(id,username,password,email,age,card,tel,saraly,married,addr,sex)
VALUES(1,'king','king','38771946@qq.com',24,'230112197809871234','18838069066',88888.68,0,'上海','男');

http://img.mukewang.com/climg/5d552ad0000175d309610146.jpg

写回答

3回答

好帮手慕珊

2019-08-16

同学你好,可以按照如下方法进行修改:

1、到MySQL的目录下,找到my.ini文件,如果没有可以自己创建。

http://img.mukewang.com/climg/5d5648480001c3db05160406.jpg

添加如下内容:

[client] 
default-character-set = utf8mb4 
[mysql] 
default-character-set = utf8mb4 

[mysqld] 
character-set-client-handshake = FALSE 
character-set-server = utf8mb4 
collation-server = utf8mb4_unicode_ci 
init_connect='SET NAMES utf8mb4'

2、重启MySQL服务

3、修改数据库和数据表对应字段的编码格式:
(1)修改数据库编码方式

ALTER DATABASE 数据库名 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

修改完可以使用如下命令查看修改结果:

show variables like 'character_set_database';

(2)修改数据表编码方式

ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

修改完可以使用如下命令查看修改数据表的结果:

show create table 表名

(3)修改数据表里字段的编码方式

ALTER TABLE 表名 CHANGE 'addr' VARCHAR(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

(4)重新插入即可。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~


0

z晓龙

提问者

2019-08-16

插入的时候报错,怎么解决

http://img.mukewang.com/climg/5d56024d0001f42409660133.jpg

0

好帮手慕阿满

2019-08-15

同学你好,同学的语句有问题,不存在saraly的列,应该是salary。如:

http://img.mukewang.com/climg/5d552edb0001c5b807540311.jpg

建议同学修改一下再试试。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

0

0 学习 · 4297 问题

查看课程