-1

我试图让这个程序在两个不同的表中添加一个新行:bildestudent。输入bilde的值应该来自于student中使用的值。

此时我收到此消息:错误代码:1136。列数与第 1 行的值不匹配,我不太确定如何解决此问题。

DELIMITER $$ 
DROP PROCEDURE IF EXISTS NyStudent $$

CREATE PROCEDURE NyStudent (
                        brukernavn VARCHAR(45)
                        ,fornavn VARCHAR(45)
                        ,etternavn VARCHAR(45)
                        ,klassekode INT
                        )

BEGIN
    START TRANSACTION;
    INSERT INTO bilde (filnavn, beskrivelse)
        VALUES (CONCAT('bilder/', fornavn, '.jpg'), CONCAT('bilde av ', fornavn, ' ', etternavn));
    INSERT INTO student
        VALUES ('donaldduck','donald','duck','1');
    COMMIT;
END$$ 

DELIMITER ;
CALL NyStudent('donaldduck','donald','duck','1');
4

1 回答 1

0

尝试在学生的“INSERT INTO”语句中添加列名,因为这应该是列计数错误的主要原因。

此外,即使我们为表的每一列插入值,最好在 INSERT INTO 语句之后包含列名。遵循这将在一定程度上避免代码中的任何破坏,即使在未来的模式更改中也是如此。

于 2019-11-01T12:10:50.893 回答