我希望使用MySQL在表中使用ENUM MySQL功能。
我已经创建了一个表tbl_test,它以id作为主键,enum_col字段作为ENUM数据类型。
CREATE TABLE tbl_test(
id INT NOT NULL AUTO_INCREMENT,
enum_col ENUM('a','b','c') NOT NULL,
PRIMARY KEY ( id )
);当我尝试存储单枚举值时,它被插入,但是当我试图存储多枚举值时,它会抛出SQL错误。
错误:
Data truncated for column 'enum_col' at row 1单个ENUM值(正确):
INSERT INTO tbl_test(id, enum_col) values(1, 'a');多个ENUM值(失败):
INSERT INTO tbl_test(id, enum_col) values(2, 'a,b');是否可以将多值存储在ENUM数据类型中?
发布于 2016-07-11 10:59:37
这是因为您只能在其中存储一个值,实际上,您绝对应该在任何类型的列中只存储一个值。
使用分开的桌子。然后,您可以使用多个记录来存储任意多个值。示例:
tbl_test
--------
id | name
1 | test_X
2 | test_Y
3 | test_Z
tbl_test_enums
--------------
test_id | enum_value
1 | a
1 | b
2 | a
3 | c发布于 2016-07-11 11:00:50
如果要存储多个值,则应使用SET数据类型而不是ENUM。
https://stackoverflow.com/questions/38305154
复制相似问题