1
我正在制定課程時間表。有5班,每班每週發生一次。我有兩張桌子,一張班表和一張時間表。觸發器在類mysql時間表中複製同一表中的行
我試圖做一個觸發器,該行將在同一張表上覆制,但在不同的日期輸入。插入後我還需要刪除該行。
我有這個至今:
DROP TRIGGER IF EXISTS `erase`//
CREATE TRIGGER `erase` BEFORE DELETE ON `flsch`
FOR EACH ROW INSERT INTO flsch SELECT * FROM flsch WHERE DATE_ID=old.DATE_ID
請問有什麼辦法可以做到這一點?
@Devart我已經添加了新的代碼的要求如下:
DELIMITER $$
CREATE PROCEDURE add_f(IN param_DATEID TIMESTAMP, IN param_SNO VARCHAR(6), IN param_sub VARCHAR(20), IN param_SCHD INT(4))
BEGIN
IF SNO ='math01'
INSERT INTO schtt VALUES(param_DATEID, param_SNO, param_SUB, param_SCHD);
INSERT INTO schtt VALUES(param_DATEID + INTERVAL 7 DAY, param_SNO, param_SUB, param_SCHD);
END IF;
ELSE IF SNO='eng101'
INSERT INTO schtt VALUES(param_DATEID, param_SNO, param_SUB, param_SCHD);
INSERT INTO schtt VALUES((param_DATEID + INTERVAL 1 DAY) + INTERVAL 7 DAY, param_SNO, param_SUB, param_SCHD);
END IF;
END
$$
DELIMITER ;
我可以輸入一個字符串在特定日期與程序後,將刪除一條記錄,或者可以只完成通過觸發器
我對MySQL很陌生。你能解釋,更深入的..謝謝:) – lovinxlost
我添加了一個例子。 – Devart
謝謝@Devart這真的很有幫助,謝謝你的解釋。 我只是在設置subject_ID時遇到了一些麻煩。 我希望程序插入記錄到日程表中,其中subject_id ='math01'..但是當我這樣做'代碼'時它的語法錯誤gibing INSERT INTO schtt VALUES WHERE subject_id ='BG0002'(DATE_ID + INTERVAL 1 DAY,subject_id,teacher,sched_TIME); 'code' 此外,如果我在程序中選擇'從schtt'代碼'code',我將能夠讀取當前表信息並複製到新記錄中。 – lovinxlost