|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
03.03.2015, 17:00 | #1 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
MySQL - разная политика при добавлении записей для неуказанных в запросе NOT NULL полей
Добрый день.
Столкнулся с очень странным фактом поведения MySQL. чувствую, что где-то меня обманывают, но как шулера за руку схватить - не пойму.. суть в следующем. Есть ubunta, на ней поднят MySQL (версия 5.5.41-0ubuntu0.14.04.1 если это важно). есть таблица. Пусть это будет таблица, созданная таким скриптом (для примера): Код:
Код:
Ставлю локально MySQL себе на компьютер (Windows 7), версия Версия сервера: 5.5.42 - MySQL Community Server (GPL). создаю таблицу таким же скриптом. выполняю этот же запрос. Он (справедливо) выдаёт ошибку: Цитата:
Но! Почему этот запрос работает в первом случае?!!! Как?! Что это? какая-то хитрая настройка сервера? Или дело в версии сервера? Или это глюк? прошу знающих разъяснить мне, что я не знаю/не учитываю и чём тут подвох. Спасибо. |
|
03.03.2015, 17:33 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Могу предположить, что в 1-ом случае есть неявное значение по умолчанию, во 2-ом нет.
Здесь есть упоминание для не явных умолчаний для NOT NULL полей http://phpclub.ru/mysql/doc/create-table.html Почему в одной версии есть, в другой нет и как настраивается не скажу
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
03.03.2015, 17:55 | #3 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Аватар, спасибо за ответ!
Угу. Согласен. Скорее всего Вы правы. Но я пока не могу найти, где же эти самые "неявные умолчания" задаются!! например, по вашей ссылочке текст буквально: Цитата:
А у меня локально - не работает так, как должно? У кого есть возможность, проверьте, пожалуйста на MySQL, как у Вас - позволяет сервер опускать имена not null (и без явного указания default) полей в запросе ? p.s. похоже, что кроме меня, с таким странным поведением MySQL никто не сталкивался.. Или никого это не заинтересовало... |
|
03.03.2015, 18:22 | #4 |
Форумчанин
Регистрация: 16.01.2015
Сообщений: 672
|
|
03.03.2015, 21:10 | #5 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
http://dev.mysql.com/doc/refman/5.0/...-defaults.html
MySQL NOT NULL DEFAULT По моему как раз то, что нужно
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 03.03.2015 в 21:13. |
03.03.2015, 22:22 | #6 |
ios developer
Старожил
Регистрация: 16.11.2007
Сообщений: 2,885
|
Потер, не очень правильно перечитал. lomastr_ вроде бы ссыль на баг кинул.
Делайте что хотите, но чтобы через полчаса в лесу было светло, сухо и медведь!
|
03.03.2015, 23:38 | #7 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
lomastr_, точно так. Спасибо.
если кому-то интересно, статья на хабре: "Раскрываем магию MySQL или о строгости и мягкости MySQL" Суть. Есть переменная sql_mode, через которую можно задавать поведение сервера. В строгом режиме вставка для неуказанных полей не работает, в нестрогом - проставляются значения по умолчанию для заданного типа данных: Цитата:
теперь всё понятно. всем спасибо. Последний раз редактировалось Serge_Bliznykov; 03.03.2015 в 23:41. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проблема с кодировкой при добавлении русскоязычных записей Delphi+MySql | furstenberg | БД в Delphi | 6 | 07.06.2013 00:11 |
Не работает отмена при добавлении записей в таблицу | Екатерина20 | БД в Delphi | 4 | 26.05.2012 17:23 |
Тормоза при добавлении записей в БД MS Access | Vit@L | БД в Delphi | 12 | 17.05.2010 09:03 |
Ошибка при добавлении дополнительных полей на DLE 8.2 | denis35 | WordPress и другие CMS | 13 | 15.11.2009 15:04 |
При удалении записей значения полей с type:=Autoincrement (т.е+) в оставшихся полей не изменяются | kenta | БД в Delphi | 2 | 29.10.2009 08:28 |