![]() |
|
Модераторы: skyboy |
![]()
|
|
| =Женек= |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 548 Регистрация: 20.2.2005 Репутация: нет Всего: 1 |
До чего же сложно перейти с MySQL 4 на 5. Проблемы за проблемами.
В четвертой версии я ставил auto_increment, делал PRIMARY KEY и все работало. В пятой же версии при попытке добавить что-то в таблицу вылетает ошибка #1366 - Incorrect integer value: '' for column 'id' at row 1 Икал информациб по моей проблеме - кто рекомендует ставить NULL, кто наоборот NOT_NULL, различные манипуляции с default - все пробовал, ничего не помогает. Итак - по порядку, что нужно сделать для создания работоспособного поля с auto_increment? Желательно как это делать в phpMyAdmin Спасибо. |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 41 Всего: 260 |
приведи пример запроса, которым ты вставляешь данные в БД.
что-то мне подсказываеть, что ты используешь конструкцию типа
т.е. пытаешься вставлять в поле id пустую строку. так? PS Почему сразу не приводить запрос, в котором возникает проблема? Ты считаешь нас идиотами или экстрасенсами? |
|||
|
||||
| Feldmarschall |
|
|||
|
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 3 Всего: 32 |
это, мягко говоря, фантазия. если вставлять NULL, то все прекрасно работает. Опять мы видим ту же проблему: ищется заклинание, которое сработает. При этом понимания причин того или иного поведения системы, нет. следовательно, не получается отличить нормальный совет (вставлять NULL) от глупости (вставлять NOT_NULL). Не говоря уже о том, чтобы самостоятельно решить проблему. Впрочем, не удивлюсь, если NULL вставлялся, как ('NULL',... тоже, от большого понимания синтаксиса SQL, ага. Твоя проблема в том, что ты ищешь рецепт. Задаешь вопрос не "в чем суть этой проблемы?", а "как мне её исправить"? Но проблема рецептов в том, что надо хорошо понимать, в каких случаях они работают, а в каких нет. А форумы, к сожалению, полны диалогами вида - подскажите средство от насморка! - прими пургену! я как-то раз отравился - очень помогло! |
|||
|
||||
| =Женек= |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 548 Регистрация: 20.2.2005 Репутация: нет Всего: 1 |
Фельдмаршал, давайте без язвления. Я в состоянии отличить дельный совет от глупости, но когда битый час безуспешно пытаешься что-то сделать, пробуешь все предложения.
По порядку. Запрос следующий
Но! Помещенный в скрипт, он работает без проблем. При попытке же выполнить команду "Вставить" в phpMyadmin - возникает ошибка - "1366 - Incorrect integer value: '' for column 'id' at row 1 " Ошибки не возникает если вставлять в таблицу в которой столбец с атрибутом auto_increment есть атрибут NULL. Таблица создана еще при 4 MySQL. Используя же MySQL 5 я просто не могу поставить атрибут NULL. Если есть PRIMARY KEY, то атрибут NULL не ставится, если не создавать PRIMARY KEY - не присваивается атрибут auto_increment, если поставить auto_increment, PRIMARY KEY, то не поставится NULL. То есть в принципе, скрипт работает, но я не пойму, почему такие проблемы в phpMyAdmin? |
|||
|
||||
| Feldmarschall |
|
|||
|
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 3 Всего: 32 |
По проблеме с phpMyadmin, к сожалению, ничего не могу сказать - не пользуюсь этой программой.
Возможно, версия старая, и пишет не нулл в запрос, а какую-нибудь фигню. |
|||
|
||||
| =Женек= |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 548 Регистрация: 20.2.2005 Репутация: нет Всего: 1 |
Вот еще результат экспериментов:
Таблица созданная в 4 версии mysql - поле с атрибутом NOT NULL, если при INSERT не задавать значение - все ОК, пишется пустота. Таблица созданная в 5 версии MySQL - поле с атрибутом NOT NULL, если INSERT не задавать значение - новая запись вообще не создается. Добавлено через 1 минуту и 28 секунд Впрочем, зря я боялся. Записанный NULL это не строка, записанная в ячейку, а обозначение. Впрочем, все равно раздражает. Ох уж эта миграция.... Как говорят китайцы, проклиная кого-то - "дай бог чтоб жил ты во время перемен" Добавлено через 5 минут и 23 секунды Кстати, объясните мне, чем отличается: -незаписи в ячейку при выключенном NULL (в общем то запись не происходит, но это говорит о том, что запрос анализируется и что-то в нем не нравится), -записи в нее '' (без пробела) - незаписи в нее при включенном NULL |
|||
|
||||
| Feldmarschall |
|
|||
|
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 3 Всего: 32 |
Не мог бы ты свои вопросы и утверждения иллюстрировать реальными запросами?
Очень сложно понять, что ты имеешь в виду. Заодно любой желающий сможет легко протестировать на своей системе твои проблемы. |
|||
|
||||
| smartov |
|
|||
![]() свой собственный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: нет Всего: 259 |
=Женек=, видимо старая версия phpmyadmin...
|
|||
|
||||
| =Женек= |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 548 Регистрация: 20.2.2005 Репутация: нет Всего: 1 |
Я же писал уже что с запросами через скрипт все ОК. Проблемы в phpmyadmin, который работает как web-форма. Там все обходится без запросов. Теперь понятно? А какие флажки я ставил - я подробно расписал, можно проверить. |
|||
|
||||
| smartov |
|
|||
![]() свой собственный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: нет Всего: 259 |
||||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MySQL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |