0
我正在製作一個插入地點(「Sted」)的過程,我想檢查輸入是否爲NULL。但是,每當我嘗試在開始時添加一個if語句來包圍我的代碼(下面標記爲「CRASH」)時,它會給我一個錯誤,說我的語法在「DECLARE varStedskodeID INT;」處不正確。這是我試圖添加的IF語句之後的部分。MySQL中的嵌套if語句
在我眼中,我的if語句的語法在代碼中是相同的,但是隻有我即將進行的NULL檢查if語句甚至只是簡單的IF(TRUE)就會崩潰。
任何人都可以給我一個什麼原因導致這一個,如果崩潰的提示?
DROP PROCEDURE IF EXISTS InsertSted;
DELIMITER $$
CREATE PROCEDURE InsertSted(
IN inputStedsnavn VARCHAR(255),
IN inputStedstype VARCHAR(255),
IN inputKommunenavn VARCHAR(255))
BEGIN
IF(TRUE) THEN <<------ CRASH
DECLARE varStedskodeID INT;
DECLARE varKommunenr INT;
IF(SELECT COUNT(StedkodeID) FROM stedstype WHERE Kodenavn = inputStedstype LIMIT 1) = 0 THEN
INSERT INTO stedstype VALUES(DEFAULT, inputStedstype);
END IF;
SET varStedskodeID = (SELECT StedkodeID FROM stedstype WHERE Kodenavn = inputStedstype LIMIT 1);
IF(SELECT COUNT(Kommunenr) FROM kommune WHERE Kommunenavn = inputKommunenavn LIMIT 1) = 1 THEN
SET varKommunenr = (SELECT Kommunenr FROM kommune WHERE Kommunenavn = inputKommunenavn LIMIT 1);
INSERT INTO sted VALUES(DEFAULT, inputStedsnavn, varStedskodeID, varKommunenr);
END IF;
END IF; <<------ CRASH
END$$
DELIMITER ;
首先嚐試'declare'變量然後執行結果 – 2014-10-17 09:53:18