diff --git a/spanner/cloud-client/snippets.py b/spanner/cloud-client/snippets.py index 7d7116a4c2a..1b065bb4cf5 100644 --- a/spanner/cloud-client/snippets.py +++ b/spanner/cloud-client/snippets.py @@ -93,6 +93,30 @@ def insert_data(instance_id, database_id): # [END spanner_insert_data] +# [START spanner_delete_data] +def delete_data(instance_id, database_id): + """Deletes sample data from the given database. + + The database, table, and data must already exist and can be created using + `create_database` and `insert_data`. + """ + spanner_client = spanner.Client() + instance = spanner_client.instance(instance_id) + database = instance.database(database_id) + + singers_to_delete = spanner.KeySet( + keys=[[1], [2], [3], [4], [5]]) + albums_to_delete = spanner.KeySet( + keys=[[1, 1], [1, 2], [2, 1], [2, 2], [2, 3]]) + + with database.batch() as batch: + batch.delete('Albums', albums_to_delete) + batch.delete('Singers', singers_to_delete) + + print('Deleted data.') +# [END spanner_delete_data] + + # [START spanner_query_data] def query_data(instance_id, database_id): """Queries sample data from the database using SQL.""" @@ -1027,6 +1051,7 @@ def delete_data_with_partitioned_dml(instance_id, database_id): subparsers = parser.add_subparsers(dest='command') subparsers.add_parser('create_database', help=create_database.__doc__) + subparsers.add_parser('delete_data', help=delete_data.__doc__) subparsers.add_parser('insert_data', help=insert_data.__doc__) subparsers.add_parser('query_data', help=query_data.__doc__) subparsers.add_parser('read_data', help=read_data.__doc__) @@ -1100,6 +1125,8 @@ def delete_data_with_partitioned_dml(instance_id, database_id): create_database(args.instance_id, args.database_id) elif args.command == 'insert_data': insert_data(args.instance_id, args.database_id) + elif args.command == 'delete_data': + delete_data(args.instance_id, args.database_id) elif args.command == 'query_data': query_data(args.instance_id, args.database_id) elif args.command == 'read_data': diff --git a/spanner/cloud-client/snippets_test.py b/spanner/cloud-client/snippets_test.py index 6895a7dbfe7..2ea6aec6429 100644 --- a/spanner/cloud-client/snippets_test.py +++ b/spanner/cloud-client/snippets_test.py @@ -59,6 +59,13 @@ def test_insert_data(capsys): assert 'Inserted data' in out +def test_delete_data(capsys): + snippets.delete_data(INSTANCE_ID, DATABASE_ID) + snippets.insert_data(INSTANCE_ID, DATABASE_ID) + out, _ = capsys.readouterr() + assert 'Deleted data' in out + + def test_query_data(capsys): snippets.query_data(INSTANCE_ID, DATABASE_ID) out, _ = capsys.readouterr()