2015-07-16 2 views
0

Скажите, что у меня была колонка, у которой не было ограничения Unique, как мне добавить это ограничение?Как изменить флаг столбца в MySql?

Если это возможно, как я могу убедиться, что элементы, находящиеся в столбце, соответствуют этому ограничению?

ответ

0

Попробуйте это:

CREATE TABLE table_copy AS SELECT * FROM table; -- creating table copy 
TRUNCATE TABLE table; -- truncating table to successfully apply unique index 
ALTER TABLE table ADD CONSTRAINT table_fieldname_unique_index UNIQUE (fieldname); -- adding unique index, replace **fieldname** with real field name 
INSERT IGNORE INTO table VALUES (SELECT * FROM table_copy); -- copy data from table copy to original table 
0

Добавить constaint с помощью

ALTER TABLE <your table> ADD CONSTRAINT <constraint name> UNIQUE (<your column>)

Приходя к убедившись, что ваш стол придерживается уникального ограничения, вы можете сделать

SELECT count(t.<your column>) FROM <your table> t GROUP BY t.<your column> HAVING COUNT(t.<your column>) > 1

Этот запрос будет return 0 для таблицы приклеивания,> 1 в противном случае

0

Если вы попытаетесь добавить уникальное ограничение, а существующие данные уже не уникальны, вы получите сообщение об ошибке, и ограничение добавления не будет выполнено.

Смежные вопросы