SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 29.07.2012 12:34:45

NT Man
Участник
Зарегистрирован: 07.06.2008
Сообщений: 16

На что влияет глобальный SQL Mode?

В my.cnf добавил


[mysqld]
sql-mode="NO_BACKSLASH_ESCAPES,STRICT_ALL_TABLES,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
innodb_strict_mode=ON


после перезапуска сервера получил
SELECT @@GLOBAL.sql_mode
 

@@GLOBAL.sql_mode                                                                                                          
---------------------------------------------------------------------------------------------------------------------------
NO_BACKSLASH_ESCAPES,STRICT_ALL_TABLES,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION  


но текущий sql_mode
SELECT @@sql_mode;


@@sql_mode  
------------

 
Соответственно база не генерит ошибки при вставке не правильных данных как хотелось бы. Да я могу после поднятия каждого коннекта делать в SQL
SET  sql_mode = 'NO_BACKSLASH_ESCAPES,STRICT_ALL_TABLES,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
 

Но тогда возникает вопрос а зачем я собственно определил в my.cnf глобальный SQL Mode?
Как задать можно еще SQL Mode для ользователя?

Вот здесь http://rpbouman.blogspot.com/2009/01/my … tions.html

увидел вот такую жесть

CREATE USER user@host IDENTIFIED BY 'password'
SESSION DEFAULTS SET
    SQL_MODE := 'TRADITIONAL,NO_ENGINE_SUBSTITUTION,IGNORE_SPACE,PIPES_AS_CONCAT,ANSI_QUOTES'
,   AUTOCOMMIT := OFF
,   STORAGE_ENGINE := INNODB
;
 


но она не рабочая.

Неактивен

 

#2 29.07.2012 20:23:44

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: На что влияет глобальный SQL Mode?

Глобальный sql_mode влияет на sql_mode всех подключаемых клиентов (сейчас проверил на 5.5 все так и работает). Какой у вас сервер и какой клиент?

Предложение про CREATE USER - это идея автора блога, она не реализована в MySQL.

Неактивен

 

#3 29.07.2012 21:48:17

NT Man
Участник
Зарегистрирован: 07.06.2008
Сообщений: 16

Re: На что влияет глобальный SQL Mode?

О спасибо, точно.
В PHP именно так и происходит, а вот клиент SQLyog видимо сам сбрасывает. Как нибудь профилировать запросы можно чтобы это увидеть?

Неактивен

 

#4 29.07.2012 22:06:27

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: На что влияет глобальный SQL Mode?

Можете включить general query log, тогда в логе будут все запросы клиента:
http://dev.mysql.com/doc/refman/5.1/en/query-log.html

Неактивен

 

Board footer

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