0
比方說,我有兩個表:表項限制
info(id PRIMARY KEY, opendate NOT NULL, closedate)
fileinfo(fileno PRIMARY KEY, id FOREIGN KEY REFERENCES info.id)
我想允許新的條目進入FileInfo的只有info.closedate的對應值爲null。有沒有辦法做到這一點?
比方說,我有兩個表:表項限制
info(id PRIMARY KEY, opendate NOT NULL, closedate)
fileinfo(fileno PRIMARY KEY, id FOREIGN KEY REFERENCES info.id)
我想允許新的條目進入FileInfo的只有info.closedate的對應值爲null。有沒有辦法做到這一點?
您可以將一個觸發器附加到fileinfo表上,以在INSERT上運行,該INSERT在信息上查找閉合,並在非空時拋出錯誤。
編輯:增加了一個SQLServer觸發器的例子,它會做同樣的事情。按照MySQL語法進行編輯。
CREATE TRIGGER InsertFileInfo
ON fileinfo
AFTER INSERT
AS
BEGIN
declare @closedate DateTime ;
select @closedate = closedate from info where id in (select id from new);
if @closedate is not null
begin
raiserror ('CloseDate is not null', 16, 1);
end
END
有在互聯網上的信息噸。從例如http://www.mysqltutorial.org/mysql-triggers.aspx –
感謝您的幫助。由於我是mysql的新手,我很難爲這個觸發器編寫代碼。我查了一下你提到的網站上的信息(我實際上曾經看過),但我仍然不確定如何編碼。特別是我不知道如何引用信息表上的特定關閉值。如果你能給我提供一些示例代碼以便我可以開始,我將非常感激! –
我沒有MySQL,但我已經用SQL Server之一修改了答案。您必須修改它以匹配MySQL語法。 –