AnalyticDB for MySQL memungkinkan Anda mengeksekusi pernyataan CREATE TABLE untuk membuat tabel atau menggunakan pernyataan CREATE TABLE AS SELECT (CTAS) untuk menulis hasil query ke dalam tabel baru.
Sintaks
CREATE TABLE [IF NOT EXISTS] <table_name> [table_definition]
[IGNORE|REPLACE] [AS] <query_statement>Secara default, pernyataan CTAS digunakan dengan cara yang sama seperti pernyataan CREATE TABLE. Kedua metode pembuatan tabel ini memiliki sintaks yang identik. Sebagai contoh, terlepas dari metode yang digunakan, indeks akan dibuat secara otomatis untuk setiap kolom tabel.
Parameter
Parameter | Deskripsi |
| Nama tabel. Nama tabel harus memiliki panjang 1 hingga 127 karakter dan dapat berisi huruf, angka, serta garis bawah (_). Nama tabel harus dimulai dengan huruf atau garis bawah (_). Tentukan nama tabel dalam format |
| Menentukan apakah tabel yang ditentukan oleh |
| Opsional. Sebelum catatan baru ditulis ke tabel, sistem memeriksa apakah tabel berisi catatan yang sudah ada dengan kunci utama yang sama dengan catatan baru tersebut. Jika ditemukan kecocokan, catatan baru tidak ditulis ke tabel. |
| Opsional. Sebelum catatan baru ditulis ke tabel, sistem memeriksa apakah tabel berisi catatan yang sudah ada dengan kunci utama yang sama dengan catatan baru tersebut. Jika ditemukan kecocokan, catatan baru akan menimpa catatan yang sudah ada. |
Contoh
Dalam contoh berikut, sebuah tabel bernama new_customer dibuat dari tabel customer. Berikut adalah skema tabel customer:
CREATE TABLE customer (
customer_id bigint NOT NULL COMMENT 'ID Pelanggan',
customer_name varchar NOT NULL COMMENT 'Nama pelanggan',
phone_num bigint NOT NULL COMMENT 'Nomor telepon',
city_name varchar NOT NULL COMMENT 'Kota',
sex int NOT NULL COMMENT 'Jenis kelamin',
id_number varchar NOT NULL COMMENT 'Nomor kartu identitas',
home_address varchar NOT NULL COMMENT 'Alamat rumah',
office_address varchar NOT NULL COMMENT 'Alamat kantor',
age int NOT NULL COMMENT 'Usia',
login_time timestamp NOT NULL COMMENT 'Waktu masuk',
PRIMARY KEY (login_time,customer_id,phone_num)
)
DISTRIBUTED BY HASH(customer_id)
PARTITION BY VALUE(DATE_FORMAT(login_time, '%Y%m%d')) LIFECYCLE 30
COMMENT 'Tabel informasi pelanggan'; Contoh 1
Baca data semua kolom dari tabel customer dan tulis data tersebut ke tabel new_customer, sehingga tabel new_customer memiliki nama kolom dan tipe data yang sama dengan tabel customer. Contoh pernyataan:
CREATE TABLE new_customer
AS
SELECT * FROM customer;Contoh 2
Baca data kolom customer_id dan customer_name dari tabel customer dan tulis data tersebut ke tabel new_customer. Contoh pernyataan:
CREATE TABLE new_customer
AS
SELECT customer_id, customer_name
FROM customer;Contoh 3
Baca data kolom customer_id dan login_time dari tabel customer dan tulis data tersebut ke tabel new_customer. Di tabel new_customer, definisikan kolom customer_id dan login_time sebagai kunci utama dan kolom customer_id sebagai kunci distribusi. Contoh pernyataan:
CREATE TABLE new_customer (
PRIMARY KEY (customer_id,login_time))
DISTRIBUTED BY HASH (customer_id)
AS
SELECT customer_id, login_time
FROM customer;Contoh 4
Baca data kolom customer_id dan login_time dari tabel customer dan tulis data tersebut ke tabel new_customer. Di tabel new_customer, definisikan kolom customer_id dan login_time sebagai kunci utama dan kolom customer_id sebagai kunci distribusi. Kemudian, ubah tipe data kolom login_time. Contoh pernyataan:
CREATE TABLE new_customer (
login_time date,
PRIMARY KEY (customer_id,login_time))
DISTRIBUTED BY HASH (customer_id)
AS
SELECT customer_id, login_time
FROM customer;Contoh 5
Baca data kolom customer_id, customer_name, dan login_time dari tabel customer dan tulis data tersebut ke tabel new_customer. Di tabel new_customer, definisikan kolom customer_id sebagai kolom indeks terbalik. Contoh pernyataan:
CREATE TABLE new_customer (
INDEX a_idx (customer_id))
AS
SELECT customer_id, customer_name, login_time
FROM customer;