Я использую базу данных файлов H2, и я столкнулся с следующей проблемой. Предположим, у меня есть таблица под названием PROPERTIES с двумя столбцами VARCHAR (255): NAME и VALUE, причем NAME является основным ключом. Теперь я хотел бы обновить таблицу новой строкой, только если она не существует. Если он существует, я не хочу изменять значение VALUE для этого NAME. Это было бы легко сказать MS SQL Server, но H2 SQL не имеет IF, WHERE NOT EXISTS. У него есть команда под названием MERGE, но она обновляется, если существует. Есть ли способ сделать это с помощью H2 SQL?
Я не верю, что этот вопрос является дубликатом, потому что я не видел его специально для H2.H2 insert row only if не существует
ответ
Я не знаком с H2, но если «где не существует» не работает, как насчет проверки того, что новое значение уже существует и вставляется, только если это не так?
Это пример SQL Server, поэтому вам может потребоваться изменить синтаксис.
Insert into Properties
(Name, Value)
source.Newname, source.NewValue
from Source
where NewName
not in (
select Name
from Properties
)
;
Спасибо, но ваш код, кажется, вставляет из другой таблицы. Мне нужно иметь возможность вставлять постоянные значения непосредственно в таблицу. Как я могу заполнить источник? –
Как вы относитесь к значениям? Используем переменные? С помощью переменных вы можете удалить предложение «из источника» и заменить значения столбца NewName и NewValue на переменные. – Adam
- 1. INSERT INTO/SELECT ONLY INSERTS ONE ROW
- 2. mysql update row if существует
- 3. mysql insert only if not exists не работает
- 4. MySQL IF существует INSERT else INSERT процедура
- 5. mysql insert if не существует обновление
- 6. Feedparser: insert in pg if не существует
- 7. MySQL Query to INSERT IF не существует
- 8. DB2 insert row, если не существует со значением из параметра
- 9. mysql replication insert only
- 10. Почему не работает «INSERT ROW»?
- 11. Mongoose insert only Id
- 12. Обновить колонку IF существует else insert
- 13. Javascript Insert Row
- 14. SQL Insert Only Если строка не присутствует
- 15. if существует update else insert mysql
- 16. Если существует, UPDATE Table, Else Insert New Row В таблице
- 17. Scheduled ssis insert row
- 18. foreach row insert foreach
- 19. Trigger insert deleted row
- 20. Mysql insert new row
- 21. Mysql row insert time
- 22. postgresql create insert-only table
- 23. H2 DB «Кусок больше не существует» ошибка
- 24. Excel VBA - Insert Row & Insert Column Macros
- 25. PDO Insert Only Inserting Some Data
- 26. mysql procedure return only one/first row
- 27. corona sdk insert row tableview
- 28. INSERT если не существует ОБНОВЛЕНИЕ, если существует не работает
- 29. UPDATE if exists else insert
- 30. SQLite Insert Row автоматически удаляется
Кажется, вы можете использовать 'где не exists' Н2 http://stackoverflow.com/questions/19768051/h2-sql-database-insert-if-the-record-does-not-exist –
На самом деле это не работает для меня. Кажется, вы не можете использовать WHERE NOT EXISTS в H2. Я использую SQuirrel 3.6 для запуска запроса (драйвер H2 - h2-1.4.187) –