

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# PutItem
<a name="API_PutItem_v20111205"></a>

**penting**  
***This section refers to API version 2011-12-05, which is deprecated and should not be used for new applications.***  
 **Untuk dokumentasi tentang API tingkat rendah saat ini, lihat [Referensi API Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/).**

## Deskripsi
<a name="API_PutItem_Description"></a>

Membuat item baru, atau menggantikan item lama dengan item baru (termasuk semua atributnya). Jika item sudah ada dalam tabel tertentu dengan kunci primer yang sama, item baru sepenuhnya menggantikan item yang ada. Anda dapat melakukan penempatan bersyarat (masukkan item baru jika salah satu dengan kunci primer yang ditentukan tidak ada), atau mengganti item yang ada jika memiliki nilai atribut tertentu. 

Nilai atribut tidak boleh null; atribut jenis string dan biner harus memiliki panjang lebih dari nol; dan atribut jenis set tidak boleh kosong. Permintaan dengan nilai kosong akan ditolak dengan `ValidationException`.

**catatan**  
Untuk memastikan bahwa item baru tidak menggantikan item yang ada, gunakan operasi penempatan bersyarat dengan mengatur `Exists` ke `false` untuk atribut kunci primer, atau atribut-atribut.

Untuk informasi selengkapnya tentang penggunaan `PutItem`, lihat [Bekerja dengan item dan atribut di DynamoDB](WorkingWithItems.md).

## Permintaan
<a name="API_PutItem_RequestParameters"></a>

### Sintaks
<a name="API_PutItem_RequestParameters.syntax"></a>

```
// This header is abbreviated.
// For a sample of a complete header, see API tingkat rendah DynamoDB.
POST / HTTP/1.1 
x-amz-target: DynamoDB_20111205.PutItem
content-type: application/x-amz-json-1.0

{"TableName":"Table1",
    "Item":{
        "AttributeName1":{"S":"AttributeValue1"},
        "AttributeName2":{"N":"AttributeValue2"},
        "AttributeName5":{"B":"dmFsdWU="}
    },
    "Expected":{"AttributeName3":{"Value": {"S":"AttributeValue"}, "Exists":Boolean}},
    "ReturnValues":"ReturnValuesConstant"}
```


****  

|  Nama  |  Deskripsi  |  Wajib | 
| --- | --- | --- | 
|  TableName  |  Nama tabel untuk diisi item. Jenis: String  |  Ya  | 
|  Item  | Peta atribut untuk item, dan harus menyertakan nilai kunci primer yang menentukan item tersebut. Pasangan nama-nilai atribut lainnya dapat diberikan untuk item tersebut. Untuk informasi selengkapnya tentang kunci primer, lihat [Kunci primer](HowItWorks.CoreComponents.md#HowItWorks.CoreComponents.PrimaryKey).Jenis: Peta nama atribut untuk nilai atribut. | Ya | 
| Expected  | Menunjuk atribut untuk penempatan bersyarat. Parameter `Expected` memungkinkan Anda untuk memberikan nama atribut, dan apakah DynamoDB harus memeriksa keberadaan nilai atribut; atau apakah nilai atribut ada dan memiliki nilai tertentu sebelum mengubahnya.Jenis: Peta nama atribut untuk nilai atribut, dan apakah nilai tersebut ada. | Tidak | 
| Expected:AttributeName  | Nama atribut untuk penempatan bersyarat.Jenis: String | Tidak | 
| Expected:AttributeName: ExpectedAttributeValue | Gunakan parameter ini untuk menentukan apakah nilai sudah ada atau belum untuk pasangan nama-nilai atribut. Notasi JSON berikut mengganti item jika atribut "Warna" tidak ada untuk item tersebut:<pre>"Expected" :<br />	{"Color":{"Exists":false}}</pre>Notasi JSON berikut memeriksa untuk melihat apakah atribut dengan nama "Warna" sudah memiliki nilai "Kuning" sebelum mengganti item tersebut: <pre>"Expected" : <br />	{"Color":{"Exists":true,{"Value":{"S":"Yellow"}}}</pre>Secara default, jika Anda menggunakan parameter `Expected` dan menyediakan `Value`, DynamoDB mengasumsikan bahwa atribut ada dan memiliki nilai terkini untuk diganti. Jadi Anda tidak perlu menentukan `{"Exists":true}`, karena hal tersebut sudah tersirat. Anda dapat mempersingkat permintaan untuk:<pre>"Expected" : <br />	{"Color":{"Value":{"S":"Yellow"}}}</pre> Jika Anda menentukan `{"Exists":true}` tanpa nilai atribut untuk diperiksa, DynamoDB mengembalikan kesalahan.  | Tidak | 
| ReturnValues  | Gunakan parameter ini jika Anda ingin mendapatkan pasangan nama-nilai atribut sebelum pasangan tersebut diperbarui dengan permintaan `PutItem`. Nilai parameter yang memungkinkan adalah `NONE` (default) atau `ALL_OLD`. Jika `ALL_OLD` ditentukan, dan `PutItem` menimpa pasangan nama-nilai atribut, isi dari item lama akan dikembalikan. Jika parameter ini tidak tersedia atau `NONE`, tidak ada yang dikembalikan.Jenis: String | Tidak | 

## Respons
<a name="API_PutItem_CommonResponseElements"></a>

### Sintaks
<a name="API_PutItem_CommonResponseElements.syntax"></a>

Contoh sintaksis berikut mengasumsikan permintaan ditentukan dalam parameter `ReturnValues` dari `ALL_OLD`; jika tidak, respons hanya memiliki elemen `ConsumedCapacityUnits`.

```
HTTP/1.1 200 
x-amzn-RequestId: 8966d095-71e9-11e0-a498-71d736f27375 
content-type: application/x-amz-json-1.0
content-length: 85

{"Attributes":
	{"AttributeName3":{"S":"AttributeValue3"},
	"AttributeName2":{"SS":"AttributeValue2"},
	"AttributeName1":{"SS":"AttributeValue1"},
	},
"ConsumedCapacityUnits":1
}
```


****  

|  Nama  |  Deskripsi  | 
| --- | --- | 
|  Attributes  | Nilai atribut sebelum operasi penempatan, tetapi hanya jika parameter `ReturnValues` ditentukan sebagai dalam permintaan `ALL_OLD`.Jenis: Peta pasangan nama-nilai atribut. | 
| ConsumedCapacityUnits | Jumlah unit kapasitas tulis yang digunakan dalam operasi. Nilai ini menunjukkan jumlah yang diterapkan pada throughput yang disediakan. Untuk informasi selengkapnya, lihat [DynamoDB menyediakan mode kapasitas](provisioned-capacity-mode.md). Jenis: Angka | 

## Kesalahan khusus
<a name="API_PutItem_SpecialErrors"></a>


****  

|  Kesalahan  |  Deskripsi  | 
| --- | --- | 
|  ConditionalCheckFailedException  | Pemeriksaan bersyarat gagal. Nilai atribut yang diharapkan tidak ditemukan.  | 
| ResourceNotFoundException  | Item atau atribut yang ditentukan tidak ditemukan. | 

## Contoh
<a name="API_PutItem_Examples"></a>

Untuk contoh menggunakan AWS SDK, lihat[Bekerja dengan item dan atribut di DynamoDB](WorkingWithItems.md).

### Permintaan sampel
<a name="API_PutItem_Examples_Request"></a>

```
// This header is abbreviated. For a sample of a complete header, see API tingkat rendah DynamoDB.
POST / HTTP/1.1 
x-amz-target: DynamoDB_20111205.PutItem 
content-type: application/x-amz-json-1.0

{"TableName":"comp5",
	"Item":
		{"time":{"N":"300"},
		"feeling":{"S":"not surprised"},
		"user":{"S":"Riley"}
		},
	"Expected":
		{"feeling":{"Value":{"S":"surprised"},"Exists":true}}
	"ReturnValues":"ALL_OLD"
}
```

### Respons sampel
<a name="API_PutItem_Examples_Response"></a>

```
HTTP/1.1 200 
x-amzn-RequestId: 8952fa74-71e9-11e0-a498-71d736f27375 
content-type: application/x-amz-json-1.0
content-length: 84

{"Attributes":
	{"feeling":{"S":"surprised"},
	"time":{"N":"300"},
	"user":{"S":"Riley"}},
"ConsumedCapacityUnits":1
}
```

## Tindakan terkait
<a name="API_PutItem_Related_Actions"></a>
+  [UpdateItem](API_UpdateItem_v20111205.md) 
+  [DeleteItem](API_DeleteItem_v20111205.md) 
+  [GetItem](API_GetItem_v20111205.md) 
+  [BatchGetItem](API_BatchGetItem_v20111205.md) 