Как вставить значение NULL в таблицу БД в Java?

1

Проблема в том, что я не могу понять, как вставить нулевое значение. Столбец - дата, и если он пуст, он просто добавляет текущую дату в db по умолчанию, но я не знаю, как оставить его пустым или нулевым, если пользователь не указал пользовательскую дату.

statement.executeUpdate("insert into table values(null, 100, 'text')");

Это запрос. Я попытался пропустить первое значение, вставить нуль, вставить пустую строку, значение 0. ничто, кажется, не делает трюк.

  • 1
    вставить в таблицу (colum2, colum3) значения (100, 'текст') оставить столбец, который вы хотите установить в ноль.
  • 0
    @keyser да, вы правы, я также отправил другое решение в качестве ответа.
Показать ещё 5 комментариев
Теги:

3 ответа

0
Лучший ответ

Используйте эту форму, где вы указываете, какие столбцы вы собираетесь устанавливать:

INSERT INTO table_name (column1,column2,column3,...) 
VALUES (value1,value2,value3,...);

В твоем случае:

insert into table (col2, col3) values (100, 'text')

(где, конечно, col2 и col3 - это имена столбцов вашей таблицы)

Изменение: для столбца даты (col1), вероятно, потребуется ограничение "Default null", чтобы это работало так, как вы планировали.

  • 0
    да, теперь я понял! Просто оставьте столбец, который я хочу, пустым и заполните остальные значения. Кажется, это работает! Это хороший способ. Я заполнял только значения, поэтому не мог оставить ни одного столбца пустым, но таким образом вы можете.
  • 0
    Разве это не устанавливает дату в значение по умолчанию?
Показать ещё 1 комментарий
0

в столбце column_date снимите флажок NOT NULL, затем вы можете вставить NULL VALUES

простой код "INSERT INTO table_name (field_name) VALUES (NULL)

  • 0
    да, я не проверял, и код, который вы написали, вероятно, будет работать на простом sql, но в java простое использование 'NULL' воспринимает его как строку, поэтому по какой-то причине он не будет работать Null также является зарезервированной командой Java и не будет работать без двойных кавычек. Я застрял
  • 0
    потому что вы используете ResultSet, java сохранит как String 'NULL' в вашей таблице столбцов. Вам нужен подготовленный оператор, когда ваша переменная String имеет значение NULL, подготовленный оператор будет вставлять в качестве значений NULL, а не String 'NULL'
0

попробуйте приведенный ниже код

String sql = "INSERT INTO temp(val) VALUES (?)";
PreparedStatement st = con.prepareStatement(sql);
if (/* int value is not null */) {
   st.setInt(1, value);
} else {
   set.setNull(1, Types.INTEGER);
}
count  = st.executeUpdate();
  • 0
    Я действительно не понимаю этого. Кажется, немного сложнее тоже. Я просто хочу вставить нулевое значение, а не проверять ничего

Ещё вопросы

Сообщество Overcoder
Наверх
Меню