我有三个MYSQL表,它们都相互关联,如下所示。
我目前正在存储dateofjob
两次,因为我不知道如何在触发器中创建表连接。目前我在标本详情表上使用此触发器
CREATE TRIGGER `NewAge_update` BEFORE UPDATE ON `Speciemn_Details`
FOR EACH ROW BEGIN
SET NEW.Due_Date = DATE_ADD(NEW.CastDate,INTERVAL NEW.Age DAY);
END
这完全正常,但我希望能够从样本详细信息表中删除列dateofjob
,并从Job_Details表中计算duedate
,以避免自己拥有双重数据。< / p>
我必须加入job_details.ID
加Test_Details.PARENTID
加Test_Details.TESTID
跟specimen_details.TESTID
加入,我只是不知道如何在 +----+-----------+
| ID | dateofjob |
+----+-----------+
| 1 | 1/01/2015 |
| 2 | 1/01/2016 |
| 3 | 1/01/2017 |
+----+-----------+
内加入触发。任何帮助将非常感激
我试图尽可能详细但是如果需要更多信息请问我
Job_Details
+----------+--------+--------------+
| ParentID | TestID | TestLocation |
+----------+--------+--------------+
| 2 | 2154 | Barn |
| 2 | 2155 | Barn |
| 1 | 8055 | Yard |
+----------+--------+--------------+
Test_Details
+--------+----------+---------+-----------+-----------+
| TestID | Specimen | TestAge | dateofjob | Duedate |
+--------+----------+---------+-----------+-----------+
| 2154 | A | 3 | 1/01/2016 | 4/01/2016 |
| 2154 | B | 8 | 1/01/2016 | 9/01/2016 |
| 8055 | A | 2 | 1/01/2015 | 3/01/2015 |
+--------+----------+---------+-----------+-----------+
Specimen_Details
#include <iostream>
using namespace std;
int main()
{
cout << 22 / 7 << endl; // 3
cout << 22.0 / 7.0 << endl; // 3.14286
}
答案 0 :(得分:0)
加入内部触发器代码实际上与任何其他过程代码中的联接没有任何不同,除了您无法查询触发表而是拥有Creator
和{{1}伪记录。如果我了解您的描述,您可能需要执行类似
DisplayName
(不要忘记触发器主体程序,所以你不必在一个声明中做所有事情。)