问题
I have a field in my Mysql table whose values are ('Yes','No') which is enum data type.
Here I want to set its default value as 'No'. But when I am setting it as 'No', it takes no value. How will I do this?
回答1:
CREATE TABLE enum_test (
enum_fld ENUM('Yes', 'No') DEFAULT 'No'
);
or something like this
回答2:
If an ENUM column is declared to permit NULL, the
NULL value is a legal value for the column, and the
default value is NULL. If an ENUM column is
declared NOT NULL, its default value is the first
element of the list of permitted values.
So something simple like this will help:
CREATE TABLE enum_test (enum_fld ENUM ('No', 'Yes'));
https://dev.mysql.com/doc/refman/5.0/en/enum.html
回答3:
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)
来源:https://stackoverflow.com/questions/21908428/how-willl-i-set-mysql-enum-datatype-default-value-as-no