MySQL Insert ENUM字段为空



所以我尝试使用下面的查询插入数据。列releases_isMultipack、releases_IsPhase、releases_hasChase和releases_isassoration都是enum("0","1"(类型。0和1表示假和真。

INSERT INTO releases (releases_uid, releases_title, releases_releaseDate, releases_boxNumber, releases_hobbyDbId, releases_isMultipack, releases_itemNumber, releases_isChase, releases_hasChase, releases_referenceUrl, releases_componentNumber, releases_isAssortment, releases_craftProductId, releases_craftComponentId) 
VALUES ('fa4d5128-407a-4c2b-8970-99a36a72b030', 'Woodsy Owl', '2021-03-26T16:05:00-07:00', '', NULL, 0, '52390', 0, 1, 'woodsy-owl-1', '52390a', 0, 9518039, 9518035)

查询工作正常,但即使insert语句中提供了值,也只保留ENUM列为空。

有人知道为什么会发生这种事吗?

0'0'之间存在差异。

这是一个演示。如果我插入0,我会得到一个空白,因为它不是枚举中的值。

mysql> create table releases (releases_isMultipack enum('0','1'));
Query OK, 0 rows affected (0.06 sec)
mysql> insert into releases values (0);
Query OK, 1 row affected, 1 warning (0.03 sec)
mysql> show warnings;
+---------+------+-----------------------------------------------------------+
| Level   | Code | Message                                                   |
+---------+------+-----------------------------------------------------------+
| Warning | 1265 | Data truncated for column 'releases_isMultipack' at row 1 |
+---------+------+-----------------------------------------------------------+
1 row in set (0.00 sec)
mysql> select * from releases;
+----------------------+
| releases_isMultipack |
+----------------------+
|                      |
+----------------------+
1 row in set (0.00 sec)

但如果我使用'0':,它会起作用

mysql> insert into releases values ('0');
Query OK, 1 row affected (0.03 sec)
mysql> select * from releases;
+----------------------+
| releases_isMultipack |
+----------------------+
|                      |
| 0                    |
+----------------------+

最新更新