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

Bagaimana cara mengubah tindakan referensial kunci asing? (perilaku)

Pertanyaan lama tetapi menambahkan jawaban agar orang bisa mendapatkan bantuan

Proses dua langkahnya:

Misalkan, sebuah table1 memiliki kunci asing dengan nama kolom fk_table2_id , dengan batasan nama fk_name dan table2 adalah tabel yang dirujuk dengan kunci t2 (sesuatu seperti di bawah ini dalam diagram saya ).

   table1 [ fk_table2_id ] --> table2 [t2]

Langkah pertama , JATUHKAN KENDALA lama:(referensi )

ALTER TABLE `table1` 
DROP FOREIGN KEY `fk_name`;  

pembatasan pemberitahuan dihapus, kolom tidak dihapus

Langkah kedua , TAMBAHKAN KENDALA baru:

ALTER TABLE `table1`  
ADD CONSTRAINT `fk_name` 
    FOREIGN KEY (`fk_table2_id`) REFERENCES `table2` (`t2`) ON DELETE CASCADE;  

menambahkan batasan, kolom sudah ada

Contoh:

Saya memiliki UserDetails tabel mengacu pada Users tabel:

mysql> SHOW CREATE TABLE UserDetails;
:
:
 `User_id` int(11) DEFAULT NULL,
  PRIMARY KEY (`Detail_id`),
  KEY `FK_User_id` (`User_id`),
  CONSTRAINT `FK_User_id` FOREIGN KEY (`User_id`) REFERENCES `Users` (`User_id`)
:
:

Langkah pertama:

mysql> ALTER TABLE `UserDetails` DROP FOREIGN KEY `FK_User_id`;
Query OK, 1 row affected (0.07 sec)  

Langkah kedua:

mysql> ALTER TABLE `UserDetails` ADD CONSTRAINT `FK_User_id` 
    -> FOREIGN KEY (`User_id`) REFERENCES `Users` (`User_id`) ON DELETE CASCADE;
Query OK, 1 row affected (0.02 sec)  

hasil:

mysql> SHOW CREATE TABLE UserDetails;
:
:
`User_id` int(11) DEFAULT NULL,
  PRIMARY KEY (`Detail_id`),
  KEY `FK_User_id` (`User_id`),
  CONSTRAINT `FK_User_id` FOREIGN KEY (`User_id`) REFERENCES 
                                       `Users` (`User_id`) ON DELETE CASCADE
:


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Menghindari Pembagian dengan Nol di MySQL

  2. Mysql atau/dan didahulukan?

  3. Apa Itu MySQL:Gambaran Umum

  4. unggah file php, cara membatasi jenis unggahan file

  5. Pembuatan Database Visual dengan MySQL Workbench