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.
Implements
Google.Protobuf.IMessage<Mutation>, IEquatable<Mutation>, Google.Protobuf.IDeepCloneable<Mutation>, Google.Protobuf.IBufferMessage, Google.Protobuf.IMessageNamespace
Google.Cloud.Spanner.V1Assembly
Google.Cloud.Spanner.V1.dll
Constructors
Mutation()
public Mutation()
Mutation(Mutation)
public Mutation(Mutation other)
Parameter | |
---|---|
Name | Description |
other | Mutation |
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 | |
---|---|
Type | Description |
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 | |
---|---|
Type | Description |
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 | |
---|---|
Type | Description |
Mutation.Types.Write |
OperationCase
public Mutation.OperationOneofCase OperationCase { get; }
Property Value | |
---|---|
Type | Description |
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 | |
---|---|
Type | Description |
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 | |
---|---|
Type | Description |
Mutation.Types.Write |