sql >> Database >  >> RDS >> Mysql

Automatisch knooppuntgegevens verwijderen samen met VERWIJDEREN van een record?

Declareer een referentiële actie:ON DELETE CASCADE, bijvoorbeeld:

CREATE TABLE user (
    user_id int PRIMARY KEY
);

CREATE TABLE offer (
    offer_id int PRIMARY KEY
);

CREATE TABLE user_offer (
    user_id int,
    offer_id int,
    PRIMARY KEY (user_id, offer_id),
    FOREIGN KEY (user_id) REFERENCES user (user_id) ON DELETE CASCADE,
    FOREIGN KEY (user_id) REFERENCES offer (offer_id) ON DELETE CASCADE
);

[SQL Fiddle]

Interessant genoeg lijkt het erop dat het specificeren van referentiële actie in de "steno" syntaxis van vreemde sleutels niet werkt (bevestigd onder MySQL 5.5.30, 5.6.6 m9). Het volgende wordt geparseerd, maar wanneer user is verwijderd, de bijbehorende user_offer wordt niet verwijderd:

CREATE TABLE user_offer (
    user_id int REFERENCES user (user_id) ON DELETE CASCADE,
    offer_id int REFERENCES offer (offer_id) ON DELETE CASCADE,
    PRIMARY KEY (user_id, offer_id)
);


  1. Is mysql_insert_id thread veilig?

  2. Hoe een query in postgresql stoppen / beëindigen?

  3. Wat is de snelste manier om veel gegevens in bulk in te voegen in SQL Server (C#-client)

  4. Een weergave maken in SQL Server