2017-03-06 76 views
0

我想,同時增加了新的進入我的logbookstart_datestart_time複製到latest_timelatest_date

但是我也想依賴於logbook.logbook_index_id = logbook_index.id所有條目。我想更新的其他表,當我創建一個條目

mysql> describe logbook; 
+-------------------------------+-----------------------+------+-----+---------+----------------+ 
| Field       | Type     | Null | Key | Default | Extra   | 
+-------------------------------+-----------------------+------+-----+---------+----------------+ 
| id       | int(10) unsigned  | NO | PRI | NULL | auto_increment | 
| logbook_index_id    | int(10) unsigned  | NO |  | NULL |    | 
| start_date     | date     | NO |  | NULL |    | 
| start_time     | time     | NO |  | NULL |    | 


mysql> describe logbook_index; 
+--------------------+----------------------+------+-----+---------+----------------+ 
| Field    | Type     | Null | Key | Default | Extra   | 
+--------------------+----------------------+------+-----+---------+----------------+ 
| id     | int(10) unsigned  | NO | PRI | NULL | auto_increment | 
| first_date   | date     | NO |  | NULL |    | 
| first_time   | time     | NO |  | NULL |    | 
| latest_date  | date     | NO |  | NULL |    | 
| latest_time  | time     | NO |  | NULL |    | 
+--------------------+----------------------+------+-----+---------+----------------+ 

ATM我走到這一步......

create trigger update_dates after insert on logbook 
for each row update logbook_index 
set latest_date = start_date where logbook_index.id = logbook_index_id; 

我這樣做,主要是錯了,我敢打賭。這是如何正確工作的,以及如何獲得複製時間?

回答

1

如果我理解正確你的問題: 爲此,我建議使用一個trigger

你可以把一個AFTER INSERT觸發您插入表中,觸發內就可以把更新到其他表。

爲了從新插入記錄訪問的變量,你需要做到以下幾點:

UPDATE logbook_index 
SET latest_date = NEW.start_date 
WHERE logbook_index.id = NEW.logbook_index_id; 

注意,用於訪問關鍵字NEW新插入記錄。

如果您正在使用的AFTER UPDATE觸發,您可以通過使用OLD

+0

我試過你說的,但現在我有一個新問題。帖子已更新。 – suleiman

+0

我會更新我的回答 – RMT

1

什麼您要搜索的是一個Trigger,這是在響應自動調用事件的過程訪問舊的價值觀,你的情況在logbook表中插入一行。

+0

我試過你說的,但現在我有一個新問題。帖子已更新。 – suleiman

相關問題