目前我正在使用數據庫,我得到了一個奇怪的錯誤wirth程序。我創建了一個獲取VARCHAR類型的三個參數:title, interpret, album
。下面是代碼:程序失敗,但沒有變量的工作
BEGIN
INSERT IGNORE INTO Interpret (Name) VALUES (interpret);
SET @idInterpret := (SELECT id FROM Interpret WHERE Name = interpret);
INSERT IGNORE INTO Album (Name, Interpret) VALUES (album, @idInterpret);
SET @idAlbum := (SELECT id FROM Album WHERE Name = album AND Interpret = @idInterpret);
INSERT INTO Lied (Name, Album, Interpret) VALUES (title, @idAlbum, @idInterpret);
END
如果我開始這個過程,我得到它說,這張專輯字段不能爲空(這是正確的),而是因爲我讀從價值不應該是空的錯誤上面的表格。如果我用真實的數據調用完全相同的SQL語句(而不是使用變量的過程),所有的工作都很好。你有什麼想法,爲什麼發生這種情況?
你可以在調試表中插入'@ idInterpret'和'@ idAlbum'嗎?或者以某種方式打印'@ idInterpret'和'@ idAlbum'?也許選擇沒有結果? – flaschenpost