2012-02-29 24 views
0

我在我的數據庫中設置了2個表格 - fitness_report和result。SQL觸發器插入到一個表中,多次複製到另一個表中

fitness_report具有以下各列(按順序):

report_id, test_period, test_date, student_id 

結果具有以下各列(按順序):

test_id, student_id, report_id, score 

我需要發生的是在創建一個新行時什麼在表fitness_report上, 條目對結果表進行如下,其中student_id和report_id從fitness_report上的新行復制而來:

1, student_id, report_id, null 
2, student_id, report_id, null 
3, student_id, report_id, null 
4, student_id, report_id, null 
5, student_id, report_id, null 
6, student_id, report_id, null 

你能否建議最好的方法去做這件事。

乾杯

+0

你的DB是mysql? – 2012-02-29 08:22:22

+0

@ThitLwinOo是的,DB是mySQL – user1201502 2012-02-29 08:36:18

回答

1

您可以在INSERT事件創建觸發器。檢查this

CREATE TRIGGER myTrigger AFTER INSERT ON fitness_report 
    FOR EACH ROW BEGIN 
    INSERT INTO results SET student_id = NEW.student_id, report_id=NEW.report_id; 
    END; 
+0

這會將student_id和report_id插入到結果表中,但是如何插入靜態數據呢? (test_id和分數)? – user1201502 2012-02-29 08:29:49

+0

將這項工作: CREATE TRIGGER newReport INSERT ON fitness_report FOR EACH ROW之後開始 \t INSERT INTO結果(1,NEW.student_id,NEW.report_id,NULL); INSERT INTO results(2,NEW.student_id,NEW.report_id,null); INSERT INTO results(3,NEW.student_id,NEW.report_id,null); INSERT INTO results(4,NEW.student_id,NEW.report_id,null); \t INSERT INTO results(4,NEW.student_id,NEW.report_id,null); INSERT INTO results(5,NEW.student_id,NEW.report_id,null); END; – user1201502 2012-02-29 08:53:48

+0

嘗試'INSERT INTO結果SET student_id = NEW.student_id,report_id = NEW.report_id,score = null;'。你可以重複INSERT語句來插入多條記錄。 – 2012-02-29 09:12:14

相關問題