2

嗨,我尝试使用这个 sp 插入,插入语句为:

call insertuser (1, '077788899965', 'Digest 1.0', ':=', 'asjdfhiuoadshgiadufg');

SP代码:

DELIMITER$$

CREATE PROCEDURE insertuser (IN IdParam INT, IN UserNameParam varchar(64), IN AttributeParam varchar(64), IN OpParam  char(2), IN ValueParam varchar(253)) 
BEGIN 

    // Delete user if they already exist

    DELETE FROM radcheck 
    WHERE username = UserNameParam; 

    // Insert

    INSERT INTO  radcheck (id, username, atrribute, op, value) 
    SELECT (IdParam, UserNameParam, AttributeParam, OpParam, ValueParam); 

END$$

但我收到以下错误:

错误 1241 (21000):操作数应包含 1 列

知道如何解决这个问题吗?

4

1 回答 1

1
DELIMITER $$

CREATE PROCEDURE insertuser (IN IdParam INT, IN UserNameParam varchar(64), 
                             IN AttributeParam varchar(64), IN OpParam  char(2), 
                             IN ValueParam varchar(253)) 
BEGIN 
    DELETE FROM radcheck 
    WHERE username = UserNameParam; 

    INSERT INTO  radcheck (id, username, atrribute, op, `value`) 
    SELECT IdParam, UserNameParam, AttributeParam, OpParam, ValueParam;
END
$$

有2个问题:

  • 之后缺少空格DELIMITER
  • //不是 MySQL 中的评论开始。利用/* */

如果您使用像MySQL Workbench这样的 SQL IDE,这些错误将被突出显示并且更容易修复。

于 2014-03-18T13:29:41.833 回答