Как вставить current_timestamp для вновь вставленных строк - PullRequest
0 голосов
/ 07 января 2019

Мне нужно вставлять данные с отметкой времени ежедневно три раза. Мне нужно вставить current_timestamp в нулевые значения в столбце времени

update tablename 
  set time = CURRENT_TIMESTAMP 
WHERE time = null
 name   | marks |            time
 ---------+-------+----------------------------
 GANESH  |    80 | 2019-01-06 05:03:24.171124
 GANESH  |    90 | 2019-01-06 05:03:24.171124
 GANESH  |   100 | 2019-01-06 05:03:24.171124
 SURESH  |    10 | 2019-01-06 05:03:24.171124
 SURESH  |    20 | 2019-01-06 05:03:24.171124
 SURESH  |    30 | 2019-01-06 05:03:24.171124
 RAKESH  |    90 | 2019-01-06 05:03:24.171124
 Vishnu  |   900 | 2019-01-06 05:03:24.171124
 VITAL   |   100 | 2019-01-06 05:03:24.171124
 SEENU   |   100 | 2019-01-06 05:03:24.171124
 VITAL1  |   100 |
 VITAL12 |   100 |
 VITAL13 |   100 |
 raj     |       |
 raj1    |       |
 raj2    |       |

Я ожидаю вставить current_timestamp в пустых местах

  name   | marks |            time
    ---------+-------+----------------------------
     GANESH  |    80 | 2019-01-06 05:03:24.171124
     GANESH  |    90 | 2019-01-06 05:03:24.171124
     GANESH  |   100 | 2019-01-06 05:03:24.171124
     SURESH  |    10 | 2019-01-06 05:03:24.171124
     SURESH  |    20 | 2019-01-06 05:03:24.171124
     SURESH  |    30 | 2019-01-06 05:03:24.171124
     RAKESH  |    90 | 2019-01-06 05:03:24.171124
     Vishnu  |   900 | 2019-01-06 05:03:24.171124
     VITAL   |   100 | 2019-01-06 05:03:24.171124
     SEENU   |   100 | 2019-01-06 05:03:24.171124
     VITAL1  |   100 | 2019-01-07 11:03:24.171124
     VITAL12 |   100 | 2019-01-07 11:03:24.171124
     VITAL13 |   100 | 2019-01-07 11:03:24.171124
     raj     |       | 2019-01-07 11:03:24.171124
     raj1    |       | 2019-01-07 11:03:24.171124
     raj2    |       |2019-01-07 11:03:24.171124

1 Ответ

0 голосов
/ 07 января 2019

Если вы хотите сравнить столбец с NULL, вам нужно использовать операторы IS NULL или IS NOT NULL. Итак, должно работать следующее:

UPDATE tablename
SET time = CURRENT_TIMESTAMP
WHERE time IS NULL;

Этот вопрос - почти опечатка, за исключением того, что понимание того, что семантически означает NULL в SQL, - это больше, чем проблема опечатки. Значение NULL само по себе означает «неизвестно», поэтому нет смысла использовать = для его проверки.

...