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

Hubungan tabel MyISAM Engine (MySQL)

Coba PEMICU:

Contoh MyIsam dengan Kunci Asing:

Buat tabel induk:

CREATE TABLE myisam_parent
(
 mparent_id INT NOT NULL,
 PRIMARY KEY (mparent_id)
) ENGINE=MYISAM;

Buat tabel anak:

CREATE TABLE myisam_child
(
 mparent_id INT NOT NULL,
 mchild_id INT NOT NULL,
 PRIMARY KEY (mparent_id, mchild_id)
) ENGINE = MYISAM;

Buat pemicu (dengan DELIMITER):

DELIMITER $$
CREATE TRIGGER insert_myisam_child
BEFORE INSERT ON myisam_child
FOR EACH ROW
BEGIN
    IF (SELECT COUNT(*) FROM myisam_parent WHERE mparent_id=new.mparent_id)=0 THEN
        INSERT error_msg VALUES ('Foreign Key Constraint Violated!');//Custom error
    END IF;
END;$$
DELIMITER ;

Kasus uji:

Coba masukkan (buat 3 baris di myisam_parent dan 6 baris di myisam_child ):

INSERT INTO myisam_parent VALUES (1), (2), (3);
INSERT INTO myisam_child VALUES (1,1), (1,2), (2,1), (2,2), (2,3), (3,1);

Coba masukkan:

INSERT INTO myisam_child VALUES (7, 1);

Mengembalikan kesalahan ini:

Catatan:

Contoh ini untuk INSERT , untuk "pemicu" dengan tautan baca DELETE dan UPDATE (di awal pertanyaan)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PILIH JUMLAH() vs mysql_num_rows();

  2. Cara menggabungkan 2 atau lebih rentang tanggal menjadi 1

  3. 'max_user_connections' disetel ke 200 - masih mendapatkan kesalahan

  4. Perbedaan antara SET autocommit=1 dan MULAI TRANSAKSI di mysql (Apakah saya melewatkan sesuatu?)

  5. Cara menggunakan orderby pada elemen yang digabungkan dengan metode Laravel Eloquent WITH