这是我的存储过程:SQL存储过程中,变量为空
CREATE PROCEDURE `insert_exercise` (nazev VARCHAR(45), URL VARCHAR(255), obtiznost INT, partie INT)
BEGIN
DECLARE video_id INT;
DECLARE cvik_id INT;
INSERT INTO `odkaz_video` (URL) VALUES (@URL);
SELECT id INTO video_id FROM `odkaz_video` WHERE URL = @URL;
INSERT INTO `cvik` (nazev, odkaz_video, obtiznost_id) VALUES (@nazev, video_id, @obtiznost);
SELECT id INTO cvik_id FROM `cvik` WHERE nazev = @nazev;
INSERT INTO `cvik_partie` (partie_id, cvik_id) VALUES (@partie, cvik_id);
END
当我把这叫做SP,我得到错误1048列“网址”不能为空。即使我输入了所有参数,为什么这个变量(@URL)为空?
感谢您的回应
您也可能会发现这个答案有帮助:http://stackoverflow.com/questions/1009954/mysql-variable-vs-variable-whats-the-difference – zedfoxus
能否请您包括您用来调用存储过程的确切语句以及所涉及表的完整表定义?这可能是问题出现在调用语句或表定义中的关键约束的结果中。 – Gerf