INSERT - Amazon Redshift

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

INSERT

Menyisipkan baris baru ke dalam tabel. Anda dapat menyisipkan satu baris dengan VALUES sintaks, beberapa baris dengan VALUES sintaks, atau satu atau lebih baris yang ditentukan oleh hasil kueri (... INSERT INTO SELECT).

catatan

Kami sangat menyarankan Anda untuk menggunakan COPY perintah untuk memuat sejumlah besar data. Menggunakan INSERT pernyataan individual untuk mengisi tabel mungkin sangat lambat. Atau, jika data Anda sudah ada di tabel database Amazon Redshift lainnya, gunakan INSERT INTO SELECT atau CREATETABLESEBAGAI untuk meningkatkan kinerja. Untuk informasi selengkapnya tentang menggunakan COPY perintah untuk memuat tabel, lihatMemuat data di Amazon Redshift.

catatan

Ukuran maksimum untuk satu SQL pernyataan adalah 16 MB.

Sintaks

INSERT INTO table_name [ ( column [, ...] ) ] {DEFAULT VALUES | VALUES ( { expression | DEFAULT } [, ...] ) [, ( { expression | DEFAULT } [, ...] ) [, ...] ] | query }

Parameter

table_name

Meja sementara atau persisten. Hanya pemilik tabel atau pengguna dengan INSERT hak istimewa di atas meja yang dapat menyisipkan baris. Jika Anda menggunakan klausa kueri untuk menyisipkan baris, Anda harus memiliki SELECT hak istimewa pada tabel yang disebutkan dalam kueri.

catatan

Gunakan INSERT (tabel eksternal) untuk menyisipkan hasil SELECT kueri ke dalam tabel yang ada pada katalog eksternal. Untuk informasi selengkapnya, lihat INSERT(tabel eksternal).

kolom

Anda dapat menyisipkan nilai ke dalam satu atau lebih kolom tabel. Anda dapat mencantumkan nama kolom target dalam urutan apa pun. Jika Anda tidak menentukan daftar kolom, nilai yang akan disisipkan harus sesuai dengan kolom tabel dalam urutan di mana mereka dideklarasikan dalam CREATE TABLE pernyataan. Jika jumlah nilai yang akan dimasukkan kurang dari jumlah kolom dalam tabel, kolom n pertama dimuat.

Baik nilai default yang dideklarasikan atau nilai null dimuat ke kolom apa pun yang tidak terdaftar (secara implisit atau eksplisit) dalam pernyataan. INSERT

DEFAULT VALUES

Jika kolom dalam tabel diberi nilai default saat tabel dibuat, gunakan kata kunci ini untuk menyisipkan baris yang seluruhnya terdiri dari nilai default. Jika salah satu kolom tidak memiliki nilai default, null dimasukkan ke dalam kolom tersebut. Jika salah satu kolom dideklarasikan NOTNULL, INSERT pernyataan mengembalikan kesalahan.

VALUES

Gunakan kata kunci ini untuk menyisipkan satu atau lebih baris, setiap baris terdiri dari satu atau lebih nilai. VALUESDaftar untuk setiap baris harus sejajar dengan daftar kolom. Untuk menyisipkan beberapa baris, gunakan pembatas koma di antara setiap daftar ekspresi. Jangan ulangi VALUES kata kunci. Semua VALUES daftar untuk INSERT pernyataan beberapa baris harus berisi jumlah nilai yang sama.

ekspresi

Nilai tunggal atau ekspresi yang mengevaluasi ke satu nilai. Setiap nilai harus kompatibel dengan tipe data kolom tempat ia dimasukkan. Jika memungkinkan, nilai yang tipe datanya tidak cocok dengan tipe data yang dideklarasikan kolom secara otomatis dikonversi ke tipe data yang kompatibel. Sebagai contoh:

  • Nilai desimal 1.1 dimasukkan ke dalam INT kolom sebagai. 1

  • Nilai desimal 100.8976 dimasukkan ke dalam kolom DEC (5,2) sebagai. 100.90

Anda dapat secara eksplisit mengonversi nilai ke tipe data yang kompatibel dengan menyertakan sintaks tipe cast dalam ekspresi. Misalnya, jika kolom COL1 dalam tabel T1 adalah kolom CHAR (3):

insert into t1(col1) values('Incomplete'::char(3));

Pernyataan ini menyisipkan nilai Inc ke dalam kolom.

Untuk INSERT VALUES pernyataan baris tunggal, Anda dapat menggunakan subquery skalar sebagai ekspresi. Hasil subquery dimasukkan ke dalam kolom yang sesuai.

catatan

Subkueri tidak didukung sebagai ekspresi untuk pernyataan beberapa baris. INSERT VALUES

DEFAULT

Gunakan kata kunci ini untuk menyisipkan nilai default untuk kolom, seperti yang didefinisikan ketika tabel dibuat. Jika tidak ada nilai default untuk kolom, null dimasukkan. Anda tidak dapat menyisipkan nilai default ke dalam kolom yang memiliki NOT NULL kendala jika kolom tersebut tidak memiliki nilai default eksplisit yang ditetapkan padanya dalam pernyataan. CREATE TABLE

query

Masukkan satu atau lebih baris ke dalam tabel dengan mendefinisikan kueri apa pun. Semua baris yang dihasilkan query dimasukkan ke dalam tabel. Kueri harus mengembalikan daftar kolom yang kompatibel dengan kolom dalam tabel, tetapi nama kolom tidak harus cocok.

Catatan penggunaan

catatan

Kami sangat menyarankan Anda untuk menggunakan COPY perintah untuk memuat sejumlah besar data. Menggunakan INSERT pernyataan individual untuk mengisi tabel mungkin sangat lambat. Atau, jika data Anda sudah ada di tabel database Amazon Redshift lainnya, gunakan INSERT INTO SELECT atau CREATETABLESEBAGAI untuk meningkatkan kinerja. Untuk informasi selengkapnya tentang menggunakan COPY perintah untuk memuat tabel, lihatMemuat data di Amazon Redshift.

Format data untuk nilai yang disisipkan harus sesuai dengan format data yang ditentukan oleh CREATE TABLE definisi.

Setelah memasukkan sejumlah besar baris baru ke dalam tabel:

  • Vakum meja untuk merebut kembali ruang penyimpanan dan mengurutkan ulang baris.

  • Analisis tabel untuk memperbarui statistik untuk perencana kueri.

Ketika nilai dimasukkan ke dalam DECIMAL kolom dan mereka melebihi skala yang ditentukan, nilai yang dimuat dibulatkan sesuai kebutuhan. Misalnya, ketika nilai 20.259 dimasukkan ke dalam kolom DECIMAL (8,2), nilai yang disimpan adalah20.26.

Anda dapat memasukkan ke dalam IDENTITY kolom GENERATED BY DEFAULT AS. Anda dapat memperbarui kolom yang didefinisikan DEFAULT sebagai GENERATED BY AS IDENTITY dengan nilai yang Anda berikan. Untuk informasi selengkapnya, lihat GENERATED BY DEFAULT AS IDENTITY.