【问题标题】:Delete query in Mysql working wrongMysql中的删除查询工作错误
【发布时间】:2013-05-07 07:12:25
【问题描述】:

我有一个 SP:

DELIMITER $$
CREATE PROCEDURE test_ind(in StudentID varchar(4), in issueYear varchar(4))
BEGIN 
delete from Mark where StudentID = StudentID and issueYear = issueYear;
END $$
DELIMITER ;

当我调用这个 SP 时:call test_ind('8','2011')

它必须删除 studentID = 8 但它删除了表中的所有行。

这个查询有什么问题?
请问你能帮帮我吗!

【问题讨论】:

    标签: mysql stored-procedures sql-delete


    【解决方案1】:

    存储过程发生名称冲突,因为参数的名称与列的名称完全相同。

    改参数名就行了,

    DELIMITER $$
    CREATE PROCEDURE test_ind(IN _StudentID VARCHAR(4), IN _issueYear VARCHAR(4))
    BEGIN 
        DELETE FROM Mark 
        WHERE  StudentID = _StudentID AND 
               issueYear = _issueYear;
    END $$
    DELIMITER ;
    

    【讨论】:

    • 我怎样才能结束这个问题?我是新来的。非常感谢!
    • 您可以通过单击问题左侧的复选标记(变为绿色)将问题标记为已接受,或者如果您认为只有您可以,则将其删除受益这个问题:)
    • 我只想将此问题标记为已回答或类似的内容,而不是删除。再次感谢你:)
    猜你喜欢
    • 2016-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-23
    • 2023-03-10
    • 1970-01-01
    • 2014-06-12
    • 2019-03-29
    相关资源
    最近更新 更多