Вставка enum поля MySQL по индексу - PullRequest
0 голосов
/ 31 мая 2011

Существует простая таблица mysql «mytable» со столбцом «fruit», который представляет собой поле enum, содержащее «apple», «orange» и «mango».

Мы можем получить доступ к значению индекса перечисления с помощью SELECT fruit + 0 FROM mytable Но как мы можем вставить поле enum по индексу вместо INSERT INTO mytable fruit VALUE 'apple' WHERE ...

Я попробовал INSERT INTO mytable fruit + 0 VALUE '1' WHERE ... но он не работает и не может найти связанные темы здесь или в сети.

Спасибо.

Ответы [ 2 ]

2 голосов
/ 31 мая 2011

Простой INSERT INTO mytable(fruit) VALUES(1); должен работать.

Вам не нужно конвертировать fruit+0, как в select.

0 голосов
/ 31 мая 2011

перечисления специально разработаны для устранения необходимости знать значения индекса.Используя значения индекса, вы определенно идете вразрез с причиной существования перечислений.

Если вы не хотите использовать значения перечисления для вставки, то я бы предложил разбить названия фруктов на отдельные таблицы,и сделайте свой mytable.fruit внешним ключом, указывающим на этот новый фруктовый стол.Затем вы вставляете значение идентификатора вместо «apple».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...