因此,我試圖創建一個存盤程序,它需要兩個值,但它必須檢查是否已經存在一個包含這兩個值的行,但怎么做?
CREATE PROCEDURE `ChangeDashboardContent`(TestSuiteCollectionId varchar(45)。專案 varchar(45))
BEGIN[/span])
/*這里應該檢查這兩個值是否已經存在*/。
IF select * from dashboard_hidden where TestSuiteCollectionId =
TestSuiteCollectionId and Project = Projectthen end如果and不做任何事情,因為他們已經在那里了。
ELSE /*如果該行不存在,則實施它*/。
INSERT INTO dashboard_hidden(`TestSuiteCollectionId`,`Project`)
VALUES (TestSuiteCollectionId, Project);
END IF;
END
uj5u.com熱心網友回復:
使用IF NOT EXISTS怎么樣
CREATE PROCEDURE `ChangeDashboardContent`(TestSuiteCollectionId varchar(45)。專案 varchar(45))
BEGIN[/span])
/*這里應該檢查這兩個值是否已經存在*/。
如果NOT EXISTS (select * from dashboard_hidden where TestSuiteCollectionId =
TestSuiteCollectionId and Project = 專案)
BEGIN
INSERT INTO dashboard_hidden(`TestSuiteCollectionId`,`Project`)
VALUES (TestSuiteCollectionId, Project);
END=結束。
END
uj5u.com熱心網友回復:
在這種情況下,你可以使用Exists運算子
。IF NOT EXISTS (SELECT 1 FROM dashboard_hidden where TestSuiteCollectionId =
TestSuiteCollectionId and Project = 專案)
BEGIN
INSERT INTO dashboard_hidden(`TestSuiteCollectionId`,`Project`)
VALUES (TestSuiteCollectionId, Project);
結束。
以上將完成你的要求。然而,如果你在你的表中有這樣的條件,因為兩列應該有唯一的值,你可以考慮添加唯一鍵約束。如果這兩個值已經同時存在,SQL將不允許任何插入,那么你就不需要在存盤程序中檢查是否存在了。
ALTER TABLE dashboard_hidden
ADD CONSTRAINT UQ_SuiteCollection_Project UNIQUE (TestSuiteCollectionId,Project)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/307784.html
標籤:
