2016-09-30 35 views
2

從MemSQL文檔中不清楚是否支持多操作事務。MemSQL多操作事務

在簡單的話讓我們說我有以下的交易

BEGIN 
INSERT smth INTO table1 
INSERT smth INTO table2 
UPDATE table2 SET smt 
DELETE FROM table3 WHERE smth 
COMMIT 

這將是一個原子操作意味着,要麼整個交易成功或回滾如果租用一個操作失敗?

回答

2

這些支持,是的。您可以觀察到這一點,如果您運行回滾,或者如果您在提交之前從其他客戶端運行select查詢,則不會看到任何DML效果。

+0

有沒有不支持的東西?作爲一個例子,我知道INSERT ... SELECTS不能在事務內運行,因爲我猜,只有READ_COMMITTED隔離級別被支持。你介意給列表添加其他的東西嗎? – dmagda

+0

你從哪裏看到插入選擇無法在事務內部運行?它應該工作: –

+0

''' memsql> create table t(a int,b int); memsql> begin; 查詢OK,0行受影響(0.00秒) memsql> insert into t values(1,2); Query OK,1 row affected(0.00 sec) memsql> insert into t select * from t; 詢問確定,1行受影響(0.00秒) 記錄:1重複:0警告:0 memsql> select * from t; + ------ + ------ + | a | b | + ------ + ------ + | 1 | 2 | | 1 | 2 | + ------ + ------ + 設置2行(0.00秒) memsql> rollback; 查詢OK,0行受影響(0.00秒) memsql> select * from t; 空集(0.00秒) ''' –