Masalah:
Anda ingin membuat kunci utama untuk tabel dalam database.
Contoh:
Kami menginginkan kunci utama untuk tabel yang disebut product
.
Solusi 1 (tabel baru):
CREATE TABLE product ( id INT PRIMARY KEY, name VARCHAR(100) NOT NULL, producer VARCHAR(100) NOT NULL, price DECIMAL(7,2) );
Diskusi:
Untuk membuat tabel baru dengan kolom yang didefinisikan sebagai kunci utama, Anda dapat menggunakan kata kunci PRIMARY KEY
di akhir definisi kolom itu. Dalam contoh kami, kami membuat tabel product
menggunakan CREATE TABLE
klausa, dengan nama kolom dan tipe datanya masing-masing dalam tanda kurung. Kami memilih id kolom sebagai kunci utama tabel ini, jadi kami menetapkan PRIMARY KEY
di akhir definisi kolom ini.
Ingatlah bahwa Anda hanya dapat membuat satu kunci utama untuk tabel tertentu.
Solusi 2 (tabel baru):
CREATE TABLE product ( name VARCHAR(100) NOT NULL, producer VARCHAR(100) NOT NULL), price DECIMAL(7,2), PRIMARY KEY(name, producer) );
Diskusi:
Cara lain untuk mendefinisikan kunci utama selama pembuatan tabel baru adalah dengan PRIMARY KEY
klausa di akhir definisi kolom. Dalam hal ini, kami menetapkan satu atau lebih kolom sebagai argumen untuk PRIMARY KEY
ayat; kolom ini menjadi kunci utama untuk tabel.
Perhatikan bahwa pendekatan ini memungkinkan kunci utama dibangun dengan banyak kolom. Dalam contoh ini, kunci utama untuk tabel product
dibentuk oleh dua kolom:name
dan producer
.
Solusi 3 (tabel yang ada):
ALTER TABLE product ADD PRIMARY KEY (id);
Diskusi:
Dimungkinkan juga untuk mendefinisikan kunci utama untuk tabel yang ada yang belum memiliki kunci utama.
Di sini, tabel diubah menggunakan ALTER TABLE
ayat. Tabel (dalam contoh kita, product
) dinamai kata kunci ALTER TABLE
, lalu ADD PRIMARY KEY
klausa berikut dengan nama kolom yang akan digunakan sebagai kunci utama. Perhatikan bahwa tabel harus sudah ada sebelum perintah ini dijalankan dan tabel tidak boleh memiliki kunci utama.
Solusi 4 (tabel yang ada, batasan kunci utama):
ALTER TABLE product ADD CONSTRAINT PK_product_id PRIMARY KEY (id);
Diskusi:
Gunakan kueri seperti ini jika Anda ingin memberi nama batasan kunci utama untuk tabel yang ada. Di sini, batasan kunci utama, PK_product_id
, dihasilkan dari kolom id
. Jika Anda tidak menentukan nama kendala, database menghasilkan nama kendala default (nama akan bervariasi menurut database).