SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 13.03.2011 11:59:34

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

Уникальное поле типа TEXT и добавление констрейнтов

Добрый день!

Создаю таблицу с уникальным текстовым полем и еще каким-либо произвольным констрейнтом - пусть это будет уникальность другого поля `id`.

drop table if exists t;

create table t (
    name tinytext,
    id int,
    unique (name(255)),
    unique (id)
);

Все хорошо. Пробуем то же самое, только добавление уникальности `id` выносим отдельно:

create table t (
    name tinytext,
    id int,
    unique (name(255))
);

alter table t add unique (id);

alter table уже не работает:

ERROR 1170 (42000): BLOB/TEXT column 'name' used in key specification without a key length

Почему?
Заранее спасибо!

Неактивен

 

#2 16.03.2011 21:36:44

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

Re: Уникальное поле типа TEXT и добавление констрейнтов

А какая версия MySQL? У меня работает (5.5.8):

Код:

[silentia] root test > create table t (
    ->     name tinytext,
    ->     id int,
    ->     unique (name(255))
    -> );
Query OK, 0 rows affected (0.01 sec)

[silentia] root test > alter table t add unique (id);
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

Неактивен

 

Board footer

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