Страница 1 из 1

Время действия отключения внешних ключей?

Добавлено: Ср 03 апр 2013 07:22
imobile
Здравствуйте.
Отключаю внешние ключи по

Код: Выделить всё

MyConnection1->ExecSQL("SET FOREIGN_KEY_CHECKS=0",NULL,0);
Дело в том, что это отключает внешние ключи примерно на 5 мин. Как сделать так, чтоб контроль внешних ключей действовал до конца работы приложения или пока я не включу их?

Re: Время действия отключения внешних ключей?

Добавлено: Чт 04 апр 2013 17:22
DemetrionQ
Здравствуйте.

По умолчанию, переменная FOREIGN_KEY_CHECKS имеет локальную область видимости. В этом случае отключение проверки внешних ключей действует в пределах одной сессии до момента, пока вы обратно не включите проверку или не закроете сессию (закроете соединение с сервером).
Если вы хотите, чтобы закрытие соединения не меняло значение переменной FOREIGN_KEY_CHECKS, вы можете менять её с помощью SQL инструкции

Код: Выделить всё

SET GLOBAL FOREIGN_KEY_CHECKS=0
Но имейте ввиду, что в этом случае изменение этой переменной повлияет на все существующие подключения, а не только на ваше.
Более подробную информацию об особенностях использования FOREIGN_KEY_CHECKS и глобальной области видимости серверных переменных вы можете прочесть в MySQL Reference Manual.