Important
Self-managed SingleStore will soon transition from version 9.1 RC to version 10. This new semantic versioning scheme will provide SingleStore with finer control over engine and feature releases that were not possible with the current versioning scheme.
In the interim, SingleStore 9.1 RC can be used to preview, evaluate, and provide feedback on the new and upcoming features in SingleStore 10 prior to its general availability. Ahead of this transition, SingleStore 9.0 is recommended for production workloads, which can later be upgraded to SingleStore 10.
ERROR 1706 (HY000): Feature Multi-table UPDATE/DELETE with a reference table as target table is not supported by MemSQL
Issue
Updating a reference table based on a join with a sharded table returns an error.
Solutions
-
Use the same table types that use both the target as well as joined table as sharded tables or as reference tables.
-
Use an upsert with a reference table that has a primary key.
For example, upsert_is a reference table with a primary key.1 CREATE REFERENCE TABLE upsert_1(a INT PRIMARY KEY, b INT);CREATE TABLE upsert_2(a INT, b INT);The following upsert from
upsert_into1 upsert_runs successfully:2 INSERT INTO upsert_1SELECT upsert_1.* FROM upsert_1JOIN upsert_2 ON upsert_1.b = upsert_2.bON DUPLICATE KEY UPDATE upsert_1.b = VALUES(b)+1;
Warning
Turning off multi-statement transactions makes per-partition components of a distributed transaction commit independently without waiting for other partitions to finish and potentially trigger rollback.
If the values inserted are dependent on multiple statements executing concurrently, then inconsistent data may get inserted.
In case of failure, it is not possible to rollback the entire multi-upsert inside one transaction.
Last modified: