簡體   English   中英

CASCADE刪除mysql

[英]CASCADE Delete mysql

我正在創建一個小的3表數據庫,本質上將其用作數據緩沖區,因此它使用的是ENGINER = MEMORY。 該數據庫具有以下結構:

概述

我對MySQL的了解不多,所以我的問題是:是否可以進行CASCADE DELETE,這樣當我刪除MeassurementIteration時,將刪除所有與迭代關聯的MeassurementSet和Meassurements?

編碼:

-- 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.

最好的祝福。

您不能將ON DELETE CASCADEENGINE = MEMORY 不支持外鍵。

這里是參考:(MySQL Doc。)[ https://dev.mysql.com/doc/refman/5.6/en/memory-storage-engine.html]

 Table 15.4 MEMORY Storage Engine Features
 ---------------------------------------------------
 Foreign key support    No

您也可以檢查這一點,這是另一個類似的問題。 MySQL內存引擎不檢查更新外鍵?

SELECT table_name在這里enter code here ,來自referential_constraints,其中constraint_schema ='classicmodels', enter code here AND referenced_table_name ='建築物'AND delete_rule ='CASCADE'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM