在浏览网页后仍然没有找到任何简单的答案我希望有人可以就此提出建议。
如果该表中的值不为null,我想要做的就是在表中插入一个新行。在这种情况下,我有一个名为“事件”的表。
活动表
Event_ID | Event_Name | Event_Interval | Event_Date | Event_Interval | Event_Repeat
-----------------------------------------------------------------------------------
1 My Event 14 2017-04-04 14 Completion
我正在努力实现两个条件;最好用一些伪代码描述:
IF EVENT_INTERVAL != NULL THEN
IF EVENT_REPEAT = "DUE" THEN
DATE_ADD(EVENT_DATE, INTERVAL EVENT_INTERVAL DAY)
ELSE
DATE_ADD(NOW(), INTERVAL EVENT_INTERVAL DAY)
END IF
END IF
所以:当有人完成一个事件时,如果间隔值不为null,它会向表中插入一个新行,它会将间隔值添加到事件日期或当前日期,具体取决于“Event_Repeat”中的值”
到目前为止,我必须:
SELECT
(IF(ISNULL((SELECT e.Event_Interval from events e where e.Event_ID = 1)) = 1, "NULL", "NOT NULL"))
这非常正常,可以区分间隔值是否为NULL。我试图在这里合并/替换一个插入语句但是还没有运气。
如果有人可以帮助正确地构建(或更好!),请随意,因为我仍然在寻找我的方式等等。
提前致谢。
答案 0 :(得分:0)
您可以创建SP为
CREATE PROCEDURE update_event
@event_id int
AS
BEGIN
DECLARE @event_repeat_temp nvarchar(200)
SELECT @event_repeat_temp = event_repeat FROM event_table WHERE event_id = @event_id
PRINT @event_repeat_temp
IF @event_repeat_temp = 'Due'
BEGIN
INSERT INTO event_table (event_id , event_name, event_interval, event_date, interval,event_repeat) VALUES (2,'My Event',14,'completion')
END
ELSE
BEGIN
//whatever you want
END
END
并按以下方式调用此SP
EXEC update_event @event_id =1