should be it
This commit is contained in:
48
external/duckdb/test/sql/merge/merge_into_constraint.test
vendored
Normal file
48
external/duckdb/test/sql/merge/merge_into_constraint.test
vendored
Normal file
@@ -0,0 +1,48 @@
|
||||
# name: test/sql/merge/merge_into_constraint.test
|
||||
# description: Test MERGE INTO with constraints
|
||||
# group: [merge]
|
||||
|
||||
statement ok
|
||||
PRAGMA enable_verification
|
||||
|
||||
statement ok
|
||||
CREATE TABLE Stock(item_id int NOT NULL, balance int, CHECK (balance>0));
|
||||
|
||||
statement error
|
||||
MERGE INTO Stock USING (VALUES (NULL, NULL)) new_accounts(item_id, balance) USING (item_id)
|
||||
WHEN NOT MATCHED THEN INSERT VALUES (new_accounts.item_id, new_accounts.balance)
|
||||
----
|
||||
NOT NULL constraint
|
||||
|
||||
statement ok
|
||||
MERGE INTO Stock USING (VALUES (1, 10)) new_accounts(item_id, balance) USING (item_id)
|
||||
WHEN NOT MATCHED THEN INSERT VALUES (new_accounts.item_id, new_accounts.balance)
|
||||
|
||||
# trying to delete too much
|
||||
statement error
|
||||
MERGE INTO Stock USING (VALUES (1, 15)) sales(item_id, volume) USING (item_id)
|
||||
WHEN MATCHED THEN UPDATE SET balance = balance - volume
|
||||
----
|
||||
CHECK constraint
|
||||
|
||||
# binding with check constraints
|
||||
statement ok
|
||||
CREATE TABLE Items(item_id int NOT NULL, total_cost INTEGER, base_cost INTEGER, tax_cost INTEGER, CHECK (total_cost = base_cost + tax_cost));
|
||||
|
||||
statement ok
|
||||
INSERT INTO Items VALUES (1, 10, 8, 2);
|
||||
|
||||
statement error
|
||||
MERGE INTO Items USING (VALUES (1, 15)) new_prices(item_id, total_cost) USING (item_id)
|
||||
WHEN MATCHED THEN UPDATE SET total_cost = new_prices.total_cost
|
||||
----
|
||||
CHECK constraint
|
||||
|
||||
statement ok
|
||||
MERGE INTO Items USING (VALUES (1, 15)) new_prices(item_id, total_cost) USING (item_id)
|
||||
WHEN MATCHED THEN UPDATE SET total_cost = new_prices.total_cost, base_cost = new_prices.total_cost - 2
|
||||
|
||||
query IIII
|
||||
FROM Items
|
||||
----
|
||||
1 15 13 2
|
||||
Reference in New Issue
Block a user