Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cara Menonaktifkan Pemeriksaan Kunci Asing di MySQL

Pemeriksaan Kunci Asing di MySQL dapat mencegah Anda membuat beberapa pembaruan basis data ke tabel yang memiliki batasan kunci asing. Dalam kasus seperti itu, Anda dapat menonaktifkan sementara pemeriksaan kunci asing di MySQL, melakukan pembaruan, dan mengaktifkan pemeriksaan kunci asing di MySQL setelahnya. Berikut cara menonaktifkan batasan kunci asing di MySQL.

Cara Menonaktifkan Pemeriksaan Kunci Asing di MySQL

Berikut adalah langkah-langkah untuk menonaktifkan pemeriksaan kunci asing di MySQL.

Anda dapat menonaktifkan pemeriksaan kunci asing di MySQL dengan mengatur variabel sistem foreign_key_checks ke 0.

SET foreign_key_checks = 0

Demikian pula, Anda dapat mengaktifkan pemeriksaan kunci asing di MySQL dengan mengatur variabel sistem foreign_key_check ke 1

SET foreign_key_checks = 1

Namun, harap dicatat, setelah Anda mengaktifkan pemeriksaan kunci asing, MySQL tidak akan memvalidasi ulang data Anda yang sudah ada yang Anda tambahkan setelah menonaktifkan pemeriksaan kunci asing. Ini hanya akan memeriksa penambahan/pembaruan baru ke database Anda.

Bonus Baca :Cara Membuat Urutan di MySQL

Mari kita lihat sebuah contoh. Katakanlah Anda memiliki dua tabel berikut negara dan kota sedemikian rupa sehingga kota memiliki kolom kunci asing country_id yang mengacu pada id_negara di negara

CREATE TABLE countries(
    country_id INT PRIMARY KEY AUTO_INCREMENT,
    country_name VARCHAR(255) NOT NULL
);

CREATE TABLE cities(
    city_id INT PRIMARY KEY AUTO_INCREMENT,
    city_name VARCHAR(255),
    country_id INT,
    FOREIGN KEY(country_id) 
		REFERENCES countries(country_id)
);

Bonus Baca :Cara Membandingkan Dua Tabel di MySQL

Sekarang mari kita coba menyisipkan baris di kota tabel tanpa menyebutkan country_id nilai kunci asing dan Anda akan mendapatkan kesalahan seperti yang ditunjukkan di bawah ini.

mysql> INSERT INTO cities(city_name, country_id)
       VALUES('NYC',1);
ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint
fails (`sample`.`cities`, CONSTRAINT `cities_ibfk_1` FOREIGN KEY (`country_id`)
 REFERENCES `countries` (`country_id`))

Sekarang mari kita nonaktifkan pemeriksaan kunci asing di MySQL dan coba masukkan baris lagi.

mysql> SET foreign_key_checks = 0;

mysql> INSERT INTO cities(city_name, country_id)
       VALUES('NYC',1);

mysql> select * from cities;
+---------+-----------+------------+
| city_id | city_name | country_id |
+---------+-----------+------------+
|       2 | NYC       |          1 |
+---------+-----------+------------+

Sekarang kami mengaktifkan cek asing di MySQL

mysql> SET foreign_key_checks = 1;

Bonus Baca :Cara Mendapatkan Data Satu Bulan Terakhir di MySQL

Kami akhirnya menyisipkan baris yang sesuai di negara tabel.

mysql> INSERT INTO countries(country_id, country_name)
       VALUES(1,'USA');

mysql> select * from countries;
+------------+--------------+
| country_id | country_name |
+------------+--------------+
|          1 | USA          |
+------------+--------------+

Ubiq memudahkan untuk memvisualisasikan data dalam hitungan menit, dan memantau di dasbor waktu nyata. Cobalah Hari ini!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cari semua kolom tabel menggunakan kondisi satu tempat dengan kata kunci tunggal di mysql

  2. Cara mengunci satu baris

  3. Cara Mendapatkan Catatan dari 10 Menit Terakhir di MySQL

  4. Hitung selisih waktu antara dua baris

  5. Memperbaiki penyandian UTF-8 yang rusak