postgresql обрабатывает нулевые значения

#postgresql

#postgresql

Вопрос:

Я использую postgresql для базы данных. И условие в поле не равно нулю. Когда пользователь оставляет поле пустым для этого поля и нажимает enter, он выдает исключение с нулевым указателем, потому что в postgresql для целого числа он не примет accept «».Есть идеи о том, как справиться с этим случаем

Комментарии:

1. Null pointer exception ? Вы уверены, что это именно то, что вы получаете?

2. Какова ваша среда разработки? Язык? Уровень сохраняемости?

3. Прежде чем спрашивать, как избежать проблемы, вы должны спросить себя: «чего я ожидаю от моей системы в этом случае»? (когда целочисленное поле оставлено пустым в форме ввода).

Ответ №1:

Если вы можете изменить инструкцию INSERT, вы можете использовать функцию COALESCE() для автоматической замены нулевого значения другим указанным вами значением.

Вот пример автоматической вставки 0 (нуля) в поле status, когда переменная $status не установлена:

 INSERT INTO foo (name, status) VALUES ($name, COALESCE($status, 0) );
  

Функция COALESCE может принимать любое количество аргументов и возвращает первое найденное ненулевое значение. Это удобно, когда у вас есть «водопад» значений, которые вы хотите попробовать, прежде чем остановиться на значении по умолчанию. Например:

 COALESCE($status1, $status2, $status3, $status4, 0)
  

Ответ №2:

Поскольку ваше поле не принимает NULL , вы должны задать для него фактическое целое число.

Замените пустую строку на 0 (или другое значение по умолчанию) на стороне клиента.

Комментарии:

1. Можете ли вы проверить, на правильном ли я пути? var abc = document.getElementById(‘abc’).value; если(abc == «» ){ abc.value = 0; }

2. @divya: да, что-то вроде этого. Но поскольку это javascript и может быть подделано, вам следует дополнительно очистить любой пользовательский ввод на уровне вашей серверной базы данных.

Ответ №3:

Проверьте свою форму с помощью javascript, и если в текстовом поле появляется «», просто присвоите 0 этому значению. Затем передайте это значение как целое, и это все.

Комментарии:

1. Можете ли вы проверить, на правильном ли я пути? var abc = document.getElementById(‘abc’).value; if(«».equals(abc)){ abc.value = 0; }

2. Да, это так. Это что-то вроде этого.