Constraint doc
:
CREATE TABLE "EVALUATION" (
"EVALUATION_ID" NUMBER(20, 0) NOT NULL ENABLE,
ENABLE/DISABLE
menunjukkan bahwa kendala aktif atau nonaktif. Secara default ENABLE
digunakan.
AKTIFKAN Klausa Tentukan AKTIFKAN jika Anda ingin batasan diterapkan ke data dalam tabel.
Nonaktifkan Klausa Tentukan DISABLE untuk menonaktifkan batasan integritas. Batasan integritas yang dinonaktifkan muncul di kamus data bersama dengan batasan yang diaktifkan. Jika Anda tidak menentukan klausa ini saat membuat batasan, Oracle secara otomatis mengaktifkan batasan.
Batasan digunakan untuk memastikan integritas data, tetapi ada skenario yang mungkin kami perlukan untuk menonaktifkannya.
Managing Integrity
:
Menonaktifkan Batasan
Untuk menegakkan aturan yang ditentukan oleh batasan integritas, batasan harus selalu diaktifkan. Namun, pertimbangkan untuk menonaktifkan sementara batasan integritas tabel karena alasan kinerja berikut:
Saat memuat data dalam jumlah besar ke dalam tabel
Saat melakukan operasi batch yang membuat perubahan besar pada tabel (misalnya, mengubah nomor setiap karyawan dengan menambahkan 1000 ke nomor yang ada)
Saat mengimpor atau mengekspor satu tabel dalam satu waktu
Dalam ketiga kasus tersebut, penonaktifan batasan integritas untuk sementara dapat meningkatkan kinerja operasi, terutama dalam konfigurasi gudang data.
Dimungkinkan untuk memasukkan data yang melanggar batasan saat batasan tersebut dinonaktifkan. Dengan demikian, Anda harus selalu mengaktifkan batasan setelah menyelesaikan salah satu operasi yang tercantum dalam daftar peluru sebelumnya.
Penggunaan Batasan Integritas yang Efisien:Sebuah Prosedur
Menggunakan status batasan integritas dalam urutan berikut dapat memastikan manfaat terbaik:
Nonaktifkan status.
Lakukan operasi (muat, ekspor, impor).
Aktifkan status novalidate.
Beberapa manfaat menggunakan batasan dalam urutan ini adalah:
Tidak ada kunci yang ditahan.
Semua batasan dapat mengaktifkan status secara bersamaan.
Pengaktifan batasan dilakukan secara paralel.
Aktivitas bersamaan di atas meja diizinkan.
EDIT:
Pertanyaannya adalah mengapa menggunakan jelas kata kunci ketika diaktifkan secara default:
Saya akan mengatakan:
- Untuk kejelasan (aturan Python EIBTI Eksplisit Lebih Baik Daripada Implisit )
- Untuk kelengkapan
- Rasa pribadi dan/atau konvensi pengkodean
Ini adalah kategori yang sama dengan:
CREATE TABLE tab(col INT NULL)
Mengapa kami menggunakan NULL
jika kolom nullable secara default.