powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Отключение, включение ключей и уник. значения
2 сообщений из 2, страница 1 из 1
Отключение, включение ключей и уник. значения
    #39280547
alfakuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Речь о командах:
Код: sql
1.
2.
3.
ALTER TABLE db.my_table DISABLE KEYS;
// вставляем данные
ALTER TABLE db.my_table ENABLE KEYS;


Если у меня стоит индекс UNIQUE то отключение ключей не приведёт к тому что во время вставки у меня добавятся неуникальные значения? А если добавятся то потом уникальный индекс обратно включиться уже не сможет я так понял...
Или всё нормально можно не беспокоиться он всё равно не даст мне вставить повторяющиеся значения?
...
Рейтинг: 0 / 0
Отключение, включение ключей и уник. значения
    #39280570
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проверить не проще?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.7.13    |
+-----------+
1 row in set (0,00 sec)
mysql> create table testuniq (id int auto_increment primary key, value int unique not null) engine=innodb;
Query OK, 0 rows affected (0,01 sec)

mysql> alter table testuniq disable keys;
Query OK, 0 rows affected, 1 warning (0,00 sec)

mysql> show warnings;
+-------+------+--------------------------------------------------------------+
| Level | Code | Message                                                      |
+-------+------+--------------------------------------------------------------+
| Note  | 1031 | Table storage engine for 'testuniq' doesn't have this option |
+-------+------+--------------------------------------------------------------+
1 row in set (0,00 sec)


Тут комментарии излишни.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
mysql> create table testuniq (id int auto_increment primary key, value int unique not null) engine=myisam;
Query OK, 0 rows affected (0,00 sec)

mysql> alter table testuniq disable keys;
Query OK, 0 rows affected (0,00 sec)

mysql> insert into testuniq values (1,1);
Query OK, 1 row affected (0,00 sec)

mysql> insert into testuniq values (1,1);
ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY'
mysql> insert into testuniq values (2,1);
ERROR 1062 (23000): Duplicate entry '1' for key 'value'


Уникальные ограничения проверяются.

Пруф официально:
http://dev.mysql.com/doc/refman/5.7/en/alter-table.html Use ALTER TABLE ... DISABLE KEYS to tell MySQL to stop updating nonunique indexes
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Отключение, включение ключей и уник. значения
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]