如何将MySQL枚举数据类型的默认值设置为“否”?

时间:2014-02-20 12:54:42

标签: mysql database

我的Mysql表中有一个字段,其值为('是','否'),这是枚举数据类型。

这里我想将其默认值设置为“否”。但是,当我将其设置为“否”时,它没有任何价值。我该怎么做?

3 个答案:

答案 0 :(得分:9)

CREATE TABLE enum_test (
    enum_fld ENUM('Yes', 'No') DEFAULT 'No'
);

或类似的东西

答案 1 :(得分:9)

如果声明ENUM列允许NULL,则 NULL值是列的合法值,而 默认值为NULL。如果是ENUM列 声明NOT NULL,其默认值为第一个 允许值列表的元素。

这样简单的事情会有所帮助:

CREATE TABLE enum_test (enum_fld ENUM ('No', 'Yes'));

https://dev.mysql.com/doc/refman/5.0/en/enum.html

答案 2 :(得分:1)

DROP TABLE IF EXISTS test_enum;
Query OK, 0 rows affected, 1 warning (0.00 sec)

CREATE TABLE test_enum(ID INT , Name CHAR(30), IsActive ENUM('Yes','No') DEFAULT 'No');
Query OK, 0 rows affected (0.29 sec)

INSERT INTO test_enum(ID,Name) VALUES(1,'Abdul');
Query OK, 1 row affected (0.00 sec)

SELECT * FROM test_enum;
+------+-------+----------+
| ID   | Name  | IsActive |
+------+-------+----------+
|    1 | Abdul | No       |
+------+-------+----------+
1 row in set (0.00 sec)

INSERT INTO test_enum(ID,Name,IsActive) VALUES(1,'Abdul','Yes');
Query OK, 1 row affected (0.00 sec)

SELECT * FROM test_enum;
+------+-------+----------+
| ID   | Name  | IsActive |
+------+-------+----------+
|    1 | Abdul | No       |
|    1 | Abdul | Yes      |
+------+-------+----------+
2 rows in set (0.00 sec)