tree: 78de0e56e1b509f37f274d620000d0656b3cbe23 [path history] [tgz]
  1. admin/
  2. aliasshim/
  3. apiv1/
  4. internal/
  5. kokoro/
  6. spannertest/
  7. spansql/
  8. test/
  9. batch.go
  10. batch_test.go
  11. big_pdml_test.go
  12. CHANGES.md
  13. client.go
  14. client_benchmarks_test.go
  15. client_test.go
  16. cmp_test.go
  17. doc.go
  18. emulator_test.sh
  19. errors.go
  20. errors112.go
  21. errors113.go
  22. errors_test.go
  23. examples_test.go
  24. go.mod
  25. go.sum
  26. integration_test.go
  27. key.go
  28. key_test.go
  29. mutation.go
  30. mutation_test.go
  31. oc_test.go
  32. pdml.go
  33. pdml_test.go
  34. protoutils.go
  35. read.go
  36. read_test.go
  37. README.md
  38. retry.go
  39. retry_test.go
  40. row.go
  41. row_test.go
  42. session.go
  43. session_test.go
  44. sessionclient.go
  45. sessionclient_test.go
  46. statement.go
  47. statement_test.go
  48. stats.go
  49. timestampbound.go
  50. timestampbound_test.go
  51. transaction.go
  52. transaction_test.go
  53. value.go
  54. value_benchmarks_test.go
  55. value_test.go
spanner/README.md

Cloud Spanner Go Reference

Example Usage

First create a spanner.Client to use throughout your application:

client, err := spanner.NewClient(ctx, "projects/P/instances/I/databases/D")
if err != nil {
	log.Fatal(err)
}
// Simple Reads And Writes
_, err = client.Apply(ctx, []*spanner.Mutation{
	spanner.Insert("Users",
		[]string{"name", "email"},
		[]interface{}{"alice", "a@example.com"})})
if err != nil {
	log.Fatal(err)
}
row, err := client.Single().ReadRow(ctx, "Users",
	spanner.Key{"alice"}, []string{"email"})
if err != nil {
	log.Fatal(err)
}