` sex ENUM('1','0','-1') NOT NULL DEFAULT '-1' `
本来是填写男女和保密的,但是使用单引号还是双引号都是无法创建成功这个表,报错的条目就是这条。我改成这样
0 1 -1
就可以使用,
这边想问一下是否可以设置成
sex ENUM('男','女','保密') NOT NULL DEFAULT '保密'
就是直接数据库保存的数据默认选项Enum是中文的 如果可以,要怎么写呢?
完全没有问题,楼主检查一下当前表的字符集,设定为
utf8
设置数据库db_name默认为utf8:
ALTER DATABASE `db_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
设置表tb_name默认编码为utf8:
ALTER TABLE `tb_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
另外您在建表时细心点看看是不是被什么东西混进来了哦
mysql> ALTER TABLE content ADD sex ENUM('男','女','保密') NOT NULL DEFAULT '保密';
Query OK, 0 rows affected (0.14 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc content;
+----------------------+----------------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------------------+----------------------------+------+-----+---------+----------------+
| id | int(11) unsigned | NO | PRI | NULL | auto_increment |
| depth | int(11) | YES | | NULL | |
| url | varchar(200) | YES | | NULL | |
| article_title | varchar(20) | YES | | NULL | |
| article_headimg | varchar(150) | YES | | NULL | |
| article_author | varchar(20) | YES | | NULL | |
| article_content | text | YES | | NULL | |
| article_publish_time | int(10) | YES | | NULL | |
| sex | enum('男','女','保密') | NO | | 保密 | |
+----------------------+----------------------------+------+-----+---------+----------------+
你这种写法并没有什么问题,你要看下你的字符集设置
应该没什么问题,看一下字符集,不要乱码就好了,但是存的话还是建议用数字
完全没有问题,enum设置好以后,跟字符串处理基本一样
建议直接用tinyint