MySQL 5.0. Библиотека программиста | страница 54
Внимание!
В любом из режимов числа с дробной частью, добавляемые в целочисленный столбец, округляются до целого, причем такая операция не вызывает ни ошибок, ни предупреждений.
Если вы задали для столбца таблицы свойство NOT NULL (тем самым запретив использовать значение NULL в качестве значения по умолчанию), но не задали отличное от NULL значение по умолчанию (свойство DEFAULT), и если вы удалили значение столбца по умолчанию с помощью команды ALTER TABLE, то в строгом режиме считается, что у такого столбца нет значения по умолчанию. Поэтому при добавлении строки в таблицу необходимо явно задать значение для такого столбца, в противном случае операция INSERT полностью отменяется и выдается сообщение об ошибке. Исключение составляют столбцы с типом TIMESTAMP и ENUM, а также числовые столбцы со свойством AUTO_INCREMENT: для них в случае отсутствия явно заданного значения используются такие же значения, что и в нестрогом режиме.
Изменить режим взаимодействия вашего клиентского приложения с сервером вы можете с помощью команды
SET SQL_MODE = \'<Режим>\
Например, команда
SET SQL_MODE = \'\
устанавливает нестрогий режим, а команды
SET SQL_MODE = \'STRICT_TRANS_TABLES\
и
SET SQL_MODE = \'STRICT_ALL_TABLES\
устанавливают соответствующий строгий режим.
Команда SET SQL_MODE изменяет режим взаимодействия с сервером только для текущего соединения и не влияет на взаимодействие сервера с другими клиентскими приложениями. Новый режим вступает в силу немедленно после выполнения команды и сохраняется только до момента отключения от сервера.
Если же вы хотите, чтобы новый режим действовал глобально (то есть для всех клиентских приложений), необходимо включить в команду изменения режима ключевое слово GLOBAL:SET GLOBAL SQL_MODE = \'<Режим>\
Режим, установленный глобально, применяется для всех вновь подключаемых к серверу клиентских приложений; ранее подключенные приложения продолжают работать в прежнем режиме. Чтобы новый режим вступил в силу для вашего приложения, необходимо отключиться от сервера и затем снова подключиться к нему. Глобальный режим сохраняется до момента перезапуска сервера MySQL.
Внимание!
В отличие от других клиентских приложений, графическая утилита MySQL Query Browser всегда взаимодействует с сервером в глобальном режиме. Установить для нее режим, отличный от установленного глобально, невозможно: команда SET SQL_MODE, выполненная в MySQL Query Browser, игнорируется. Таким образом, чтобы изменить режим для MySQL Query Browser, нужно изменить режим глобально с помощью команды SET GLOBAL SQL_MODE. При изменении глобального режима новый режим применяется к этой утилите сразу же, без переподключения к серверу.