Spanner APIはDML文をサポートしていますか?たとえば、次のようにサポートされています。更新、挿入、または削除のサポート
UPDATE SET foo="bar" WHERE foo="baz"
Spanner APIはDML文をサポートしていますか?たとえば、次のようにサポートされています。更新、挿入、または削除のサポート
UPDATE SET foo="bar" WHERE foo="baz"
クラウドスパナは、DML操作をDELETE/INSERT/UPDATEをサポートしていない、しかし、あなたはread-write transactionsを使用して同じ効果を得ることができます。データへのすべての変異は、Mutationオブジェクトを受け入れるトランザクションコミットメソッド(RESTまたはgRPCのいずれか)を経由する必要があります。あなたの例では
、あなたは
SELECT <key> from MyTable where foo="baz"
。"bar"
にすべての値を設定するためのupdate
プロパティでMutation
オブジェクト(あなたが戻ってあなたの選択から得たそれぞれの行に1つずつ)のリストが含まれます。Google Cloud Spanner自体はこれをサポートしていませんが、このJDBCドライバhttps://github.com/olavloite/spanner-jdbcは、サポートされているSQLを解析し、Google Cloud Spannerの読み書きAPIを呼び出してサポートしています。 CloudSpannerPreparedStatementのコードを見て、どのように処理されているかを確認してください。ドライバは、https://github.com/JSQLParser/JSqlParserによって提供されるSQL解析に依存しています。
上記JDBCドライバのバージョン0.16以降では、複数行で動作する完全なDML文がサポートされています。ドライバをSQuirreLやDBVisualizerなどのツールと組み合わせて使用すると、ステートメントをCloud Spannerに送信できます。
ここでいくつかの例を見てみましょう:http://www.googlecloudspanner.com/2018/02/data-manipulation-language-with-google.html