Search code examples
questdb

What is a equivalent of a merge query(insert/update/delete) is present in the QuestDB?


What is a equivalent of a merge query(insert/update/delete) is present in the QuestDB?

Below is an example for tsql. I would like to understand how to implement the same logic in QuestDB - insert rows for new data and update rows for existing data (if they changed)

https://www.sqlshack.com/understanding-the-sql-merge-statement/ USE SqlShackMergeDemo GO

MERGE TargetProducts AS Target
USING SourceProducts    AS Source
ON Source.ProductID = Target.ProductID

-- For Inserts
WHEN NOT MATCHED BY Target THEN
    INSERT (ProductID,ProductName, Price) 
    VALUES (Source.ProductID,Source.ProductName, Source.Price)

-- For Updates
WHEN MATCHED THEN UPDATE SET
    Target.ProductName  = Source.ProductName,
    Target.Price        = Source.Price;

Solution

  • QuestDB (current v6.2) does not support any form UPDATE or DELETE statements at the moment. The only way to delete data is to drop a partition or truncate table. There is no equivalent for MERGE either.

    This is going to change soon.