Memperbarui data grafik dengan kueri grafik
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Memperbarui data di Spanner Graph menggunakan kueri grafik.
Mempelajari lebih lanjut
Untuk dokumentasi mendetail yang menyertakan contoh kode ini, lihat artikel berikut:
Contoh kode
Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Sulit dipahami","hardToUnderstand","thumb-down"],["Informasi atau kode contoh salah","incorrectInformationOrSampleCode","thumb-down"],["Informasi/contoh yang saya butuhkan tidak ada","missingTheInformationSamplesINeed","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],[],[],[],null,["# Update graph data with a graph query\n\nUpdate data in a Spanner Graph using a graph query.\n\nExplore further\n---------------\n\n\nFor detailed documentation that includes this code sample, see the following:\n\n- [Insert, update, or delete Spanner Graph data](/spanner/docs/graph/insert-update-delete-data)\n\nCode sample\n-----------\n\n### C++\n\n\nTo learn how to install and use the client library for Spanner, see\n[Spanner client libraries](/spanner/docs/reference/libraries).\n\n\nTo authenticate to Spanner, set up Application Default Credentials.\nFor more information, see\n\n[Set up authentication for a local development environment](/docs/authentication/set-up-adc-local-dev-environment).\n\n void UpdateDataWithGraphQueryInDml(google::cloud::spanner::Client client) {\n using ::google::cloud::StatusOr;\n namespace spanner = ::google::cloud::spanner;\n auto commit_result = client.Commit(\n [&client](spanner::Transaction txn) -\u003e StatusOr\u003cspanner::Mutations\u003e {\n auto update =\n client.ExecuteDml(std::move(txn), spanner::SqlStatement(R\"\"\"(\n UPDATE Account SET is_blocked = true\n WHERE id IN {\n GRAPH FinGraph\n MATCH (a:Account WHERE a.id = 1)-[:TRANSFERS]-\u003e{1,2}(b:Account)\n RETURN b.id})\"\"\"));\n if (!update) return std::move(update).status();\n return spanner::Mutations{};\n });\n if (!commit_result) throw std::move(commit_result).status();\n std::cout \u003c\u003c \"Update was successful \"\n \u003c\u003c \"[spanner_update_graph_data_with_graph_query_in_dml]\\n\";\n }\n\n### Go\n\n\nTo learn how to install and use the client library for Spanner, see\n[Spanner client libraries](/spanner/docs/reference/libraries).\n\n\nTo authenticate to Spanner, set up Application Default Credentials.\nFor more information, see\n\n[Set up authentication for a local development environment](/docs/authentication/set-up-adc-local-dev-environment).\n\n\n import (\n \t\"context\"\n \t\"fmt\"\n \t\"io\"\n\n \t\"cloud.google.com/go/spanner\"\n )\n\n func updateGraphDataWithGraphQueryInDml(w io.Writer, db string) error {\n \tctx := context.Background()\n \tclient, err := spanner.NewClient(ctx, db)\n \tif err != nil {\n \t\treturn err\n \t}\n \tdefer client.Close()\n\n \t// Execute a ReadWriteTransaction to update the 'Account' table underpinning\n \t// 'Account' nodes in 'FinGraph'. The function run by ReadWriteTransaction\n \t// executes an 'UPDATE' SQL DML statement. Graph queries run after this\n \t// transaction is committed will observe the effects of the updates to 'Account's\n \t//\n \t// The update is performed for all 'Account's whose 'id' is returned by\n \t// the graph query in the 'IN' subquery, i.e., all 'Account's that have\n \t// received transfers directly or via one intermediary from an 'Account'\n \t// whose 'id' is 1.\n \t_, err = client.ReadWriteTransaction(ctx, func(ctx context.Context, txn *spanner.ReadWriteTransaction) error {\n \t\tstmt := spanner.https://cloud.google.com/go/docs/reference/cloud.google.com/go/spanner/latest/index.html#cloud_google_com_go_spanner_Statement{\n \t\t\tSQL: `UPDATE Account SET is_blocked = true \n \t WHERE id IN {\n \t GRAPH FinGraph \n \t MATCH (a:Account WHERE a.id = 1)-[:TRANSFERS]-\u003e{1,2}(b:Account)\n \t RETURN b.id}`,\n \t\t}\n \t\trowCount, err := txn.Update(ctx, stmt)\n \t\tif err != nil {\n \t\t\treturn err\n \t\t}\n \t\tfmt.Fprintf(w, \"%d Account record(s) updated.\\n\", rowCount)\n \t\treturn err\n \t})\n\n \treturn err\n }\n\n### Java\n\n\nTo learn how to install and use the client library for Spanner, see\n[Spanner client libraries](/spanner/docs/reference/libraries).\n\n\nTo authenticate to Spanner, set up Application Default Credentials.\nFor more information, see\n\n[Set up authentication for a local development environment](/docs/authentication/set-up-adc-local-dev-environment).\n\n static void updateUsingGraphQueryInDml(DatabaseClient dbClient) {\n dbClient\n .readWriteTransaction()\n .run(\n transaction -\u003e {\n String sql =\n \"UPDATE Account SET is_blocked = true \"\n + \"WHERE id IN {\"\n + \" GRAPH FinGraph\"\n + \" MATCH (a:Account WHERE a.id = 1)-[:TRANSFERS]-\u003e{1,2}(b:Account)\"\n + \" RETURN b.id}\";\n long rowCount = transaction.executeUpdate(Statement.of(sql));\n System.out.printf(\"%d Account record(s) updated.\\n\", rowCount);\n return null;\n });\n }\n\n### Python\n\n\nTo learn how to install and use the client library for Spanner, see\n[Spanner client libraries](/spanner/docs/reference/libraries).\n\n\nTo authenticate to Spanner, set up Application Default Credentials.\nFor more information, see\n\n[Set up authentication for a local development environment](/docs/authentication/set-up-adc-local-dev-environment).\n\n def update_data_with_graph_query_in_dml(instance_id, database_id):\n \"\"\"Updates sample data from the database using a DML statement.\"\"\"\n\n spanner_client = spanner.Client()\n instance = spanner_client.instance(instance_id)\n database = instance.database(database_id)\n\n def update_accounts(transaction):\n row_ct = transaction.execute_update(\n \"UPDATE Account SET is_blocked = true \"\n \"WHERE id IN {\"\n \" GRAPH FinGraph\"\n \" MATCH (a:Account WHERE a.id = 1)-[:TRANSFERS]-\u003e{1,2}(b:Account)\"\n \" RETURN b.id}\"\n )\n\n print(\"{} Account record(s) updated.\".format(row_ct))\n\n database.run_in_transaction(update_accounts)\n\nWhat's next\n-----------\n\n\nTo search and filter code samples for other Google Cloud products, see the\n[Google Cloud sample browser](/docs/samples?product=spanner)."]]