Class Mutation (3.5.0)

public sealed class Mutation : IMessage<Mutation>, IEquatable<Mutation>, IDeepCloneable<Mutation>, IBufferMessage, IMessage

A modification to one or more Cloud Spanner rows. Mutations can be applied to a Cloud Spanner database by sending them in a [Commit][google.spanner.v1.Spanner.Commit] call.

Inheritance

Object > Mutation

Implements

Google.Protobuf.IMessage<Mutation>, IEquatable<Mutation>, Google.Protobuf.IDeepCloneable<Mutation>, Google.Protobuf.IBufferMessage, Google.Protobuf.IMessage

Namespace

Google.Cloud.Spanner.V1

Assembly

Google.Cloud.Spanner.V1.dll

Constructors

Mutation()

public Mutation()

Mutation(Mutation)

public Mutation(Mutation other)
Parameter
NameDescription
otherMutation

Properties

Delete

public Mutation.Types.Delete Delete { get; set; }

Delete rows from a table. Succeeds whether or not the named rows were present.

Property Value
TypeDescription
Mutation.Types.Delete

Insert

public Mutation.Types.Write Insert { get; set; }

Insert new rows in a table. If any of the rows already exist, the write or transaction fails with error ALREADY_EXISTS.

Property Value
TypeDescription
Mutation.Types.Write

InsertOrUpdate

public Mutation.Types.Write InsertOrUpdate { get; set; }

Like [insert][google.spanner.v1.Mutation.insert], except that if the row already exists, then its column values are overwritten with the ones provided. Any column values not explicitly written are preserved.

When using [insert_or_update][google.spanner.v1.Mutation.insert_or_update], just as when using [insert][google.spanner.v1.Mutation.insert], all NOT NULL columns in the table must be given a value. This holds true even when the row already exists and will therefore actually be updated.

Property Value
TypeDescription
Mutation.Types.Write

OperationCase

public Mutation.OperationOneofCase OperationCase { get; }
Property Value
TypeDescription
Mutation.OperationOneofCase

Replace

public Mutation.Types.Write Replace { get; set; }

Like [insert][google.spanner.v1.Mutation.insert], except that if the row already exists, it is deleted, and the column values provided are inserted instead. Unlike [insert_or_update][google.spanner.v1.Mutation.insert_or_update], this means any values not explicitly written become NULL.

In an interleaved table, if you create the child table with the ON DELETE CASCADE annotation, then replacing a parent row also deletes the child rows. Otherwise, you must delete the child rows before you replace the parent row.

Property Value
TypeDescription
Mutation.Types.Write

Update

public Mutation.Types.Write Update { get; set; }

Update existing rows in a table. If any of the rows does not already exist, the transaction fails with error NOT_FOUND.

Property Value
TypeDescription
Mutation.Types.Write