вставьте пустые значения вместо NULL в числовые поля - PullRequest
4 голосов
/ 31 августа 2010

Мне нужна ваша помощь, пожалуйста.

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

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

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

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

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

Спасибо

1 Ответ

5 голосов
/ 31 августа 2010

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...