解决mysql中ERROR 1291 (HY000): Column ‘gender‘ has duplicated value ‘?‘ in ENUM问题.

问题描述:
Ubuntu18.04在使用mysql创建数据表的性别字段时,利用enum,出现这个错误。

#具体描述:
queena@queena-Lenovo:~$ mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.

#查看所有的数据库.
mysql> show databases;
+-----------------------------+
| Database                          |
+-----------------------------+
| information_schema   |
| mysql                                  |
| performance_schema |
| sys                                        |
+-----------------------------+
4 rows in set (0.00 sec)

#新建school数据库.
mysql> create database school;
Query OK, 1 row affected (0.00 sec)

mysql> show databases;
+------------------------------+
| Database                           |  
+------------------------------+
| information_schema   |
| mysql                                  |
| performance_schema |
| school                                 |
| sys                                        |
+------------------------------+
5 rows in set (0.00 sec)

#使用school数据库.
mysql> use school;
Database changed

#在school数据库中创建student表.
mysql> create table students(id int unsigned not null auto_increment primary key,name varchar(30),age tinyint unsigned default 0,high decimal(5,2),gender enum("男","女","保密"),cls_id int unsigned);
ERROR 1291 (HY000): Column 'gender' has duplicated value '?' in ENUM
#出现该报错.

解决方法:
将其对应的数据库,即database school,编码方式改为utf-8.

#将该数据库编码更改为utf-8,如下:
mysql> alter database school charset=utf8;
Query OK, 1 row affected (0.00 sec)

#可以看到,此时可以正常创建表students.
mysql> create table students(id int unsigned not null auto_increment primary key,name varchar(30),age tinyint unsigned default 0,high decimal(5,2),gender enum("男","女","保密"),cls_id int unsigned);
Query OK, 0 rows affected (0.25 sec)

#查看school数据库中的所有表.
mysql> show tables;
+-----------------------+
| Tables_in_school |
+-----------------------+
| students                   |
+-----------------------+
1 row in set (0.00 sec)

#描述students表,也可写为describe students.
mysql> desc students;
+----------+----------------------------+------+-----+-----------+----------------------+
| Field       | Type                                  | Null | Key | Default | Extra                       |
+----------+----------------------------+------+-----+-----------+----------------------+
| id             | int(10) unsigned           | NO   | PRI | NULL    | auto_increment |
| name     | varchar(30)                     | YES  |         | NULL    |                                    |
| age          | tinyint(3) unsigned     | YES  |         | 0             |                                    |
| high        | decimal(5,2)                   | YES  |         | NULL    |                                    |
| gender  | enum('男','女','保密')  | YES  |         | NULL    |                                    |
| cls_id     | int(10) unsigned           | YES  |         | NULL    |                                    |
+-----------+----------------------------+------+-----+----------+-----------------------+
6 rows in set (0.00 sec)

#插入数据.
mysql> insert into students values(0,"老王",18,175,"男",0);
Query OK, 1 row affected (0.04 sec)

#查看students表中的所有信息.
mysql> select * from students;
+----+--------+------+---------+----------+--------+
| id   | name | age  | high     | gender | cls_id |
+----+--------+------+---------+----------+--------+
|  1   | 老王    |   18   | 175.00 ||       0    |
+----+--------+------+---------+----------+--------+
1 row in set (0.00 sec)

mysql> insert into students values(null,"小李",12,168,"男",2);
Query OK, 1 row affected (0.04 sec)

mysql> select * from students;
+----+--------+------+---------+----------+--------+
| id   | name | age  | high     | gender | cls_id |
+----+--------+------+---------+----------+--------+
|  1   | 老王    |   18   | 175.00 ||       0    |
|  2   | 小李    |   12   | 168.00 ||       2    |
+----+--------+------+---------+----------+--------+
2 rows in set (0.00 sec)

#根据指定信息查询.
mysql> select name from students;
+--------+
| name  |
+--------+
| 老王     |
| 小李     |
+--------+
2 rows in set (0.00 sec)

mysql> quit 
Bye

至此问题得以解决!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值