У меня есть таблица:ВСТАВИТЬ ИЛИ ЗАМЕНИТЬ только определенные значения?
DATE WEATHERSTATION TEMPERATURE RAINFALL
1975-01-10 B81A 25 0
1975-01-11 K174 33 16
1975-01-12 ZG4N 18 3
Я построить эту таблицу сначала обработки ввода, который содержит дату и температуру, а затем ввод, который содержит дату и осадки. Иногда имеются данные о дождевых осадках, которые отсутствуют в данных о температуре (например, если метеорологическая станция начала регистрировать осадки в 1950 году, но температуры в 1970 году - это происходит).
То, что я хотел бы сделать, это сказать:
- Если уже есть строка с этой датой, стоимость обновления X (который может быть температура или осадки в зависимости от программы);
- Если не ряд с этой датой, создайте его.
Очевидно, что я могу сделать это в самой программе, но я думаю, что делать это в SQL было бы более эффективным и разумным.
Если я использую INSERT OR REPLACE INTO weatherdata (date, weatherstation, temperature)
, потому что это удаляет значение осадков. Я бы хотел, чтобы INSERT OR UPDATE INTO WEATHERDATA
, но это, кажется, не существует; У меня есть Googled и читайте сообщения StackOverflow об этом, но мне ничего не помогло.
Что было бы правильной вещью в этой ситуации?
(система базы данных SQLite, если это имеет значение.)
возможно дубликат [INSERT IF NOT EXISTS ELSE UPDATE?] (Http://stackoverflow.com/questions/3634984/insert-if-not-exists -else-update) –
Смотрите это: http://stackoverflow.com/questions/3634984/insert-if-not-exists-else-update. Используйте select, чтобы получить реальное значение столбца, который вы не хотите заменять. –
Еще лучше, см. Это: http://stackoverflow.com/questions/418898/sqlite-upsert-not-insert-or-replace –