public sealed class Mutation : IMessage<Mutation>, IEquatable<Mutation>, IDeepCloneable<Mutation>, IBufferMessage, IMessageA 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 |
|