2010-08-31 3 views
4

Мне нужна ваша помощь.Вставить пустые значения вместо NULL в числовые поля

У нас есть PHP-приложение, работающее на MySQL, и нам нужно использовать PostgreSQL для нового клиента.

проблема заключается в том, что при вставке пустых строк в поле типа числовое, мы получаем ошибку.

Я думаю, что мы должны использовать NULL вместо пустой строки.

Однако мы хотели бы избежать необходимости перекодировать весь код SQL нашего приложения, мой вопрос заключается в том, возможно ли в структуре таблицы (или в другом месте) обеспечить, чтобы наш числовой столбец принимал пустые значения? или конвертировать их в NULL?

В документации я видел, что можно определить свои собственные типы, можно, например, создать тип на основе числового и убедиться, что он принимает пустые значения? Если да, то как? Я не нашел никакого решения

Спасибо

ответ

5

проблемы заключается в том, что, когда мы вставляем пустых строк в поле типа числовых, мы получаем ошибку.

Правильно, строка не является числом. Даже пустая строка.

Я думаю, что мы должны использовать NULL вместо пустой строки.

Правильно, ваш текущий SQL неверен. Если ваша MySQL-конфигурация будет использовать лучший SQL_MODE, ваши запросы также будут терпеть неудачу в MySQL. Исправьте свой код, это самый лучший вариант, который у вас есть.

Взлом с помощью создания фиктивных типов данных - это просто взломать, это не решение для плохого SQL. Проблема заключается в вашем SQL, а не в вашей базе данных.

Смежные вопросы