Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 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 запрос прошел на ура!
Может кому-нибудь понадобиться когда-нить )

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)