2017-04-03 4 views
0

Je crée une petite base de données de 3 tables, l'utilisant essentiellement comme un tampon pour les données, elle utilise donc ENGINER = MEMORY. La base de données a la structure suivante:CASCADE Supprimer mysql

The overview

Je ne suis pas beaucoup dans MySQL, donc ma question est la suivante: Est-il possible d'avoir un CASCADE SUPPR, de sorte que lorsque je supprime un MeassurementIteration, tous les années MeassurementSet et Les mesures couplées à l'itération seront-elles supprimées?

Le code:

-- Last modification date: 2017-04-03 08:09:06.263 

-- tables 
-- Table: Meassurement 
CREATE TABLE Meassurement (
    id int NOT NULL AUTO_INCREMENT, 
    msWay varchar(75) NOT NULL, 
    qosClass int NOT NULL, 
    timeReceived timestamp NOT NULL, 
    timeReceivedFarEnd timestamp NOT NULL, 
    timeSent timestamp NOT NULL, 
    timeSentFarEnd timestamp NULL, 
    seq int NOT NULL, 
    MeassurementSet_id int NOT NULL, 
    CONSTRAINT Meassurement_pk PRIMARY KEY (id) 
) ENGINE MEMORY COMMENT 'Contains data for a single meassurement'; 

-- Table: MeassurementIteration 
CREATE TABLE MeassurementIteration (
    id int NOT NULL AUTO_INCREMENT, 
    start timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 
    end timestamp NULL, 
    active bool NOT NULL, 
    CONSTRAINT MeassurementIteration_pk PRIMARY KEY (id) 
); 

-- Table: MeassurementSet 
CREATE TABLE MeassurementSet (
    id int NOT NULL AUTO_INCREMENT, 
    avgDelayRT double NULL, 
    avgDelayTR double NULL, 
    avgRTD double NULL, 
    maxDelayRT double NULL, 
    maxDelayTR double NULL, 
    maxRTD double NULL, 
    minRTD double NULL, 
    minDelayRT double NULL, 
    minDelayTR double NULL, 
    qosClass int NOT NULL, 
    stdDev double NULL, 
    stdDevRT double NULL, 
    stdDevTR double NULL, 
    msWay varchar(75) NOT NULL, 
    MeassurementIteration_id int NOT NULL, 
    CONSTRAINT MeassurementSet_pk PRIMARY KEY (id) 
) ENGINE MEMORY COMMENT 'Contains a set of meassurements specific to a qosclass and Meassurementway'; 

-- foreign keys 
-- Reference: MeassurementSet_MeassurementIteration (table: MeassurementSet) 
ALTER TABLE MeassurementSet 
    ADD CONSTRAINT MeassurementSet_MeassurementIteration 
    FOREIGN KEY MeassurementSet_MeassurementIteration (MeassurementIteration_id) 
     REFERENCES MeassurementIteration (id) ON DELETE CASCADE; 

-- Reference: Meassurement_MeassurementSet (table: Meassurement) 
ALTER TABLE Meassurement 
    ADD CONSTRAINT Meassurement_MeassurementSet 
    FOREIGN KEY Meassurement_MeassurementSet (MeassurementSet_id) 
     REFERENCES MeassurementSet (id) ON DELETE CASCADE; 

-- End of file. 

Meilleures salutations.

+0

http://www.mysqltutorial.org/mysql- on-delete-cascade / – scaisEdge

Répondre

0

Code SELECT table_nameenter ici DE referential_constraints OU constraint_schema = 'classicmodels de enter code here ET de referenced_table_name = 'bâtiments' ET delete_rule = 'CASCADE'