Задавайте вопросы, мы ответим
Вы не зашли.
Добрый день.
У меня проблема есть таблица, столбцы которой все в типе ENUM (в том числе и id). Мне надо перевести поле id в tinyint.
Структура такая:
id ENUM ('1','2','3','4','5')
text ENUM ('odin', 'dva')
В ней пять строк.
Так вот, при выполнении команды:
ALTER TABLE 'tmp' MODIFY id TINYINT(3) unsigned NOT NULL DEFAULT 0;
Выдает такую ошибку:
ERROR 1291 (HY000) Column 'text' has dublicated value 'odin' in ENUM
Помогите разобраться в чем ошибка и как исправить?*
Очень жду ответа, буду благодарен за любую помощь.
Неактивен
Делаете все правильно; скорее всего, у Вас дополнительные сложные ключи,
которые не проходят проверку. Полный дамп таблички покажите (включая
структуру)?
[aquatica] root test > create table et (id ENUM ('1','2','3','4','5'), text ENUM ('odin', 'dva'));
Query OK, 0 rows affected (0,05 sec)
[aquatica] root test > insert et values ('1', 'odin');
Query OK, 1 row affected (0,01 sec)
[aquatica] root test > insert et values ('2', 'dva');
Query OK, 1 row affected (0,00 sec)
[aquatica] root test > insert et values ('3', 'odin');
Query OK, 1 row affected (0,00 sec)
[aquatica] root test > insert et values ('4', 'dva');
Query OK, 1 row affected (0,00 sec)
[aquatica] root test > alter table et MODIFY id TINYINT(3) unsigned NOT NULL DEFAULT 0;
Query OK, 4 rows affected (0,02 sec)
Records: 4 Duplicates: 0 Warnings: 0
[aquatica] root test > select * from et;
+----+------+
| id | text |
+----+------+
| 1 | odin |
| 2 | dva |
| 3 | odin |
| 4 | dva |
+----+------+
4 rows in set (0,02 sec)
Неактивен