| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > MySQL > incorrect integer value '' for column... |
| Автор: skhilkov 11.11.2008, 07:47 |
| В общем ситуация такая: возникает вышеуказанная ошибка после того как начали переводить базу с 4 на 5-й MySQL. Много гуглил. Везде решением является коммент такой вот строчки - #sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" в файле my.cnf Так вот - у меня нет такой строки.... Попробовал поставить sql-mode="", не помогло.... Может дло в том что MySQL был обновлен с 4 до 5 из репозитария(Ubuntu Hardy)? А чтобы заработало очень надо, потому как есть довольно большой код, который неохота переписывать/переотлаживать.... Хелп плиз... |
| Автор: skyboy 11.11.2008, 10:25 |
| все-таки, быстрее будет скорректировать исходник. обычно такая проблема, когда в поле auto_increment вставляют "" - пустую строку. |
| Автор: skhilkov 12.11.2008, 06:14 |
| в том то и дело что поле не автоинкрементно.... обычное поле типа integer. |
| Автор: skyboy 12.11.2008, 10:04 |
| skhilkov, да, туплю. так что, зачем записываешь пустую строку? вместо пустой строки записывай NULL |
| Автор: skhilkov 12.11.2008, 12:02 |
| skyboy, Да просто формирую запрос для записи значений в таблицу. Причем у меня есть XML сформированный как <имя_поля>значение</имя поля>. Поэтому я просто прохожу по значениям, если пусто - пишу ''. Тип поля мне неизвестен. Попробую сделать с NULL вместо ''. |
| Автор: skhilkov 17.11.2008, 07:15 |
| В общем после долгих танцев с бубном все-таки вопрос решился. Решение с заменой '' на null не подходило по той причине, что в случае с пустыми кавычками вставлялось значение для столбца по умолчанию, а в случае с NULL - соответственно NULL. А дело все оказалось в том что драйвер JDBC для MySQL сам при соединении устанавливает нужный ЕМУ sql-mode!! В mysql-browser запрос прошел на ура! Может кому-нибудь понадобиться когда-нить ) |