2016-09-30 8 views
2

MemSQLのドキュメントでは、マルチオペレーションのトランザクションがサポートされているかどうかは不明です。簡単な言葉でMemSQLマルチオペレーションのトランザクション

はのは、私は、次のトランザクション

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

を持っているとしましょう、これはそれが1オペランドに障害が発生した場合、リースのいずれか全体のトランザクションが成功したか、ロールバックすることを意味アトミック操作になりますか?

答えて

2

これらはサポートされています。これを見ることができます。ロールバックを実行する場合、またはコミットの前に別のクライアントから選択クエリを実行すると、DMLエフェクトが表示されません。

+0

サポートされていないものはありますか?私が知っている例では、INSERT ... SELECTSはトランザクション内では実行できません。なぜなら、READ_COMMITTED分離レベルのみがサポートされているからです。リストに他のものを追加してもよろしいですか? – dmagda

+0

挿入物の選択がトランザクション内で実行できないことは、どこから確認できましたか?それは動作するはずです: –

+0

'' ' memsql> create table t(a int、b int); memsql> begin; クエリOK、0行に影響(0.00秒) memsql> t値(1,2)に挿入します。 クエリOK、1行に影響(0.00秒) memsql> insert into t select * from t; クエリOK、1行に影響(0.00秒) レコード:1重複:0警告:0 memsql> select * from t; + ------ + ------ + | | b | + ------ + ------ + | 1 | 2 | | 1 | 2 | + ------ + ------ + 2行セット(0.00秒) memsql> rollback; クエリOK、0行に影響(0.00秒) memsql> select * from t; 空集合(0.00秒) ' –

関連する問題