我希望将 start_date
和 start_time
复制到 latest_time
和 latest_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;
我敢打赌,我做的大部分都是错的。它如何正确工作以及如何复制时间?
最佳答案
如果我正确理解你的问题: 为此,我建议使用 trigger
您可以在插入的表上放置一个 AFTER INSERT
触发器,在触发器内您可以将更新放入另一个表。
为了从新插入的记录中访问变量,您需要执行以下操作:
UPDATE logbook_index
SET latest_date = NEW.start_date
WHERE logbook_index.id = NEW.logbook_index_id;
请注意用于访问新插入记录的关键字NEW
。
如果您使用 AFTER UPDATE
触发器,则可以使用 OLD
访问旧值
关于mysql - 我希望在创建条目时更新另一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42630760/