【发布时间】:2016-02-09 01:03:12
【问题描述】:
我需要编写一个 SQL 触发器,以便在插入后将日期插入到另一个表的一行中。
数据是这样进来的:
一个包含 JobID 的表单被提交到 _OnsiteTable,这个 JobID 匹配包含 _JobTable 中 JobID 值的当前条目。将数据插入 _OnsiteTable 后,我需要一个触发器,将当前日期插入 JobTable 中名为 JobClosedDate 的列中。
需要将日期插入到与_OnsiteTable表格中输入的JobID值相匹配的行中。
到目前为止我有这个,但我不知道如何比较表之间的 JobID 值并插入到特定行中。
CREATE TRIGGER UpdateClosedDate
AFTER INSERT on _OnsiteTable
BEGIN
Declare ClosedDate DATETIME;
SET ClosedDate = CURDATE();
CASE WHEN (ClosedDate) = ?
THEN INSERT INTO `_JobTable`( `JobClosedDate`)
VALUES
( ClosedDate);
END CASE;
END
非常感谢任何帮助!
现在可以完成查询,谢谢!如下:
CREATE TRIGGER UpdateClosedDate
AFTER INSERT on _OnsiteTable
BEGIN
Declare ClosedDate DATETIME;
SET ClosedDate = CURDATE();
UPDATE `_JobTable` SET `JobClosedDate` = ClosedDate WHERE `JobID` = new.JobID;
END
【问题讨论】:
-
只需将hole case语句更改为:
update _JobTable set JobClosedDate = ClosedDate where JobID = NEW.JobID; -
谢谢! @JorgeCampos 实际上我遇到了语法错误,我是否需要修改该行某处的语法才能使其正确?
-
可能是我没有用括号。
-
啊,明白了。需要将我的表格和列放入 `` - 现在只是测试谢谢@JorgeCampos
-
让我知道它是否有效,然后我会添加它作为答案:)