2017-08-06 117 views
0

我正在嘗試做我的功課,我不確定如何使這個事務並使其正常工作。SQL事務與if語句

問題: 1.創建一個交易進入一個新的錦標賽。

a。檢查是否有ID 21和錦標賽位置'TAMUC'的錦標賽插入表'錦標賽'(1分)中是否爲 。

b。如果沒有記錄,那麼ID 21,'2016-11-29'Tourney Date和 'TAMUC'Tourney Location的錦標賽將進入表格'錦標賽'(1分)。

c。接受在交易結束時,所有的變化(1分)

代碼:

Select TourneyID, TourneyLocation 
From Tournaments 
Where TourneyID = 21 and TourneyLocation = 'TAMUC'; 

if null 

INSERT INTO TOURNAMENTS 
VALUES (21, '2016-11-29', 'TAMUC'); 

COMMIT; 

回答

1

你可以使用(全在一次):

BEGIN TRAN; 

INSERT INTO Tournaments(TourneyID, TourneyDate, TourneyLocation) 
SELECT 21, '2016-11-29', 'TAMUC' 
WHERE NOT EXISTS (Select 1 
       From Tournaments 
       Where TourneyID = 21 and TourneyLocation = 'TAMUC'); 

COMMIT; 

對於一個簡單的INSERT INTO有不需要交易(這將是隱式交易)。

+0

但作業說它必須是一個交易。 –

+0

啊,這個詞開始tran使它成爲一筆交易。好。我想我現在開始明白這一點。 –