SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 03.07.2009 16:56:55

Xater
Участник
Зарегистрирован: 03.07.2009
Сообщений: 1

Перевод ENUM и TINYINT Помогите плз

Добрый день.
У меня проблема есть таблица, столбцы которой все в типе 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


Помогите разобраться в чем ошибка и как исправить?*

Очень жду ответа, буду благодарен за любую помощь.

Неактивен

 

#2 06.07.2009 11:08:31

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Перевод ENUM и TINYINT Помогите плз

Делаете все правильно; скорее всего, у Вас дополнительные сложные ключи,
которые не проходят проверку. Полный дамп таблички покажите (включая
структуру)?

[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)

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson