Masuk dengan Microsoft
Masuk atau buat akun.
Halo,
Pilih akun lain.
Anda memiliki beberapa akun
Pilih akun yang ingin Anda gunakan untuk masuk.

batasan serupa dengan indeks, meskipun dapat pula digunakan untuk menetapkan hubungan dengan tabel lain.

Anda menggunakan klausul CONSTRAINT dalam pernyataan ALTER TABLE dan CREATE TABLE untuk membuat atau menghapus batasan. Terdapat dua jenis klausul CONSTRAINT: klausul pertama untuk membuat batasan pada satu bidang dan klausul kedua untuk membuat batasan di lebih dari satu bidang.

Catatan: Mesin database Microsoft Access tidak mendukung penggunaan CONSTRAINT, atau pernyataan bahasa definisi data apa pun, dengan database selain Microsoft Access. Gunakan metode Pembuatan DAO sebagai gantinya.

Sintaks

Batasan satu bidang:

CONSTRAINT nama {PRIMARY KEY | UNIQUE | NOT NULL |
REFERENCES tabelasing [(tabelasing1, tabelasing2)]
[ON UPDATE CASCADE | SET NULL]
[ON DELETE CASCADE | SET NULL]}

Batasan beberapa bidang:

CONSTRAINT nama
{PRIMARY KEY (primer1[, primer2 [, ...]]) |
UNIQUE (unik1[, unik2 [, ...]]) |
NOT NULL (bukannull1[, bukannullll2 [, ...]]) |
FOREIGN KEY [NO INDEX] (ref1[, ref2 [, ...]]) REFERENCES tabelasing [(tabelasing1 [, tabelasing2 [, ...]])]
[ON UPDATE CASCADE | SET NULL]
[ON DELETE CASCADE | SET NULL]}

Klausul CONSTRAINT memiliki bagian-bagian ini:

Bagian

Deskripsi

nama

Nama batasan yang akan dibuat.

primer1, primer2

Nama bidang yang akan ditentukan kunci utama.

unik1, unik2

Nama bidang yang ditentukan sebagai kunci unik.

bukannull1, bukannull2

Nama bidang yang terbatas untuk nilai selain Null.

ref1, ref2

Nama bidang kunci asing yang merujuk ke bidang di tabel lain.

tabelasing

Nama tabel asing yang berisi bidang yang ditentukan oleh bidangasing.

bidangasing1, bidangasing2

Nama bidang dalam tabelasing yang ditentukan oleh ref1, ref2. Anda dapat menghilangkan klausul ini jika bidang yang direferensikan adalah kunci primer dari tabelasing.


Keterangan

Anda menggunakan sintaks untuk batasan satu bidang di klausul definisi bidang dari pernyataan ALTER TABLE atau CREATE TABLE setelah spesifikasi tipe data bidang.

Anda menggunakan sintaks untuk batasan beberapa bidang setiap kali menggunakan CONSTRAINT kata khusus di luar klausul definisi bidang dalam pernyataan ALTER TABLE atau CREATE TABLE.

Menggunakan CONSTRAINT, Anda dapat menentukan bidang sebagai salah satu tipe batasan berikut:

  • Anda dapat menggunakan kata khusus UNIQUE untuk menentukan bidang sebagai kunci unik. Artinya, tidak ada dua data dalam tabel yang memiliki nilai sama di bidang ini. Anda dapat membatasi bidang atau daftar sebagai bidang atau daftar unik. Jika batasan beberapa bidang ditetapkan sebagai kunci unik, nilai gabungan dari semua bidang di indeks harus unik, meskipun dua atau lebih data memiliki nilai sama di salah satu bidang.

  • Anda dapat menggunakan kata khusus PRIMARY KEY untuk menentukan satu bidang atau kumpulan bidang dalam tabel sebagai kunci primer. Semua nilai dalam kunci primer harus unik dan tidak Null, dan hanya diperbolehkan satu kunci primer saja untuk satu tabel.

    Catatan: Jangan tetapkan batasan PRIMARY KEY di tabel yang telah memiliki kunci primer. Jika Anda melakukannya, kesalahan akan terjadi.

  • Anda dapat menggunakan kata khusus FOREIGN KEY untuk menentukan bidang sebagai kunci asing. Jika kunci primer tabel asing terdiri dari lebih dari satu bidang, Anda harus menggunakan definisi batasan beberapa bidang, yang mencantumkan semua bidang yang mereferensikan, nama tabel asing, dan nama bidang yang direferensikan di tabel asing dalam urutan yang sama seperti urutan bidang yang mereferensikan. Jika bidang yang direferensikan adalah kunci primer tabel asing, Anda tidak perlu menentukan bidang yang direferensikan. Secara default, mesin database bertindak seolah-olah kunci primer tabel asing adalah bidang yang direferensikan.

    Batasan kunci asing menentukan tindakan tertentu yang akan dijalankan saat nilai kunci primer yang terkait diubah:

  • Anda dapat menentukan tindakan yang akan dijalankan pada tabel asing berdasarkan tindakan terkait yang dijalankan di kunci primer dalam tabel tempat CONSTRAINT ditentukan. Misalnya, pertimbangkan definisi tabel Customers berikut:

CREATE TABLE Customers (CustId INTEGER PRIMARY KEY, CLstNm NCHAR VARYING (50))

Pertimbangkan definisi tabel Orders berikut, yang menentukan hubungan kunci asing yang mereferensikan kunci primer dari tabel Customers:

CREATE TABLE Orders (OrderId INTEGER PRIMARY KEY, CustId INTEGER, OrderNotes NCHAR VARYING (255), CONSTRAINT FKOrdersCustId FOREIGN KEY (CustId) REFERENCES Customers ON UPDATE CASCADE ON DELETE CASCADE

Klausul ON UPDATE CASCADE dan ON DELETE CASCADE ditentukan di kunci asing. Klausul ON UPDATE CASCADE berarti jika pengidentifikasi pelanggan (CustId) telah diperbarui di tabel Customer, pembaruan akan diteruskan melalui tabel Orders. Setiap pesanan yang berisi nilai pengidentifikasi pelanggan yang terkait akan diperbarui secara otomatis beserta dengan nilai baru. Klausul ON DELETE CASCADE berarti bahwa jika pelanggan telah dihapus dari tabel Customer, semua baris di tabel Orders yang berisi nilai pengidentifikasi pelanggan yang sama juga akan dihapus.

Pertimbangkan definisi tabel Orders berbeda berikut, yang menggunakan tindakan SET NULL sebagai ganti tindakan CASCADE:

CREATE TABLE Orders (OrderId INTEGER PRIMARY KEY, CustId INTEGER, OrderNotes NCHAR VARYING (255), CONSTRAINT FKOrdersCustId FOREIGN KEY (CustId) REFERENCES Customers ON UPDATE SET NULL ON DELETE SET NULL

Klausul ON UPDATE SET NULL berarti bahwa jika pengidentifikasi pelanggan (CustId) telah diperbarui di tabel Customer, nilai kunci asing yang terkait di tabel Orders akan diatur secara otomatis menjadi NULL. Hampir serupa, klausul ON DELETE SET NULL berarti bahwa jika pelanggan telah dihapus dari tabel Customer, semua kunci asing yang terkait dalam tabel Orders akan diatur secara otomatis menjadi NULL.

Untuk mencegah pembuatan indeks otomatis untuk kunci asing, modifikasi NO INDEX dapat digunakan. Bentuk definisi kunci asing ini harus digunakan hanya dalam kasus di mana nilai indeks yang dihasilkan akan sering diduplikasi. Ketika nilai dalam indeks kunci asing sering diduplikasi, menggunakan indeks bisa kurang efisien daripada hanya melakukan pemindaian tabel. Mempertahankan tipe indeks ini, dengan baris yang disisipkan dan dihapus dari tabel, menurunkan kinerja dan tidak memberikan manfaat apa pun.



Perlu bantuan lainnya?

Ingin opsi lainnya?

Jelajahi manfaat langganan, telusuri kursus pelatihan, pelajari cara mengamankan perangkat Anda, dan banyak lagi.

Komunitas membantu Anda bertanya dan menjawab pertanyaan, memberikan umpan balik, dan mendengar dari para ahli yang memiliki pengetahuan yang luas.

Apakah informasi ini berguna?

Seberapa puaskah Anda dengan kualitas bahasanya?
Apa yang memengaruhi pengalaman Anda?
Dengan menekan kirim, umpan balik Anda akan digunakan untuk meningkatkan produk dan layanan Microsoft. Admin TI Anda akan dapat mengumpulkan data ini. Pernyataan Privasi.

Terima kasih atas umpan balik Anda!

×