[英]Procedure is not working
I have written below store procedure to delete users from different tables. 我在下面编写了存储过程,以从不同的表中删除用户。 But somehow it is not working. 但是它不起作用。 If I keep individual query inside the procedure it is working, but if I add more then one it is not working. 如果我在过程中保留单个查询,它将起作用,但是,如果我添加多个查询,则它将不起作用。
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `deleteUser`(IN `userid` INT)
NO SQL
BEGIN
DELETE FROM `Table1` WHERE id=userid;
DELETE FROM `Table2` WHERE user_id=userid;
DELETE FROM `Table3` WHERE userid=userid;
END$$
DELIMITER ;
I can't reproduce the problem: 我无法重现该问题:
DROP PROCEDURE IF EXISTS `deleteUser`;
DROP TABLE IF EXISTS `Table3`, `Table2`, `Table1`;
CREATE TABLE IF NOT EXISTS `Table1` (
`id` INT
);
CREATE TABLE IF NOT EXISTS `Table2` (
`user_id` INT
);
CREATE TABLE IF NOT EXISTS `Table3` (
`userid` INT
);
INSERT INTO `Table1` VALUES (100), (200), (300), (400);
INSERT INTO `Table2` VALUES (100), (600), (700), (800);
INSERT INTO `Table3` VALUES (100), (900), (1000), (1100);
SELECT `id` FROM `Table1`;
SELECT `user_id` FROM `Table2`;
SELECT `userid` FROM `Table3`;
DELIMITER \\
CREATE PROCEDURE `deleteUser`(IN `_userid` INT)
BEGIN
DELETE FROM `Table1` WHERE `id` = `_userid`;
DELETE FROM `Table2` WHERE `user_id` = `_userid`;
DELETE FROM `Table3` WHERE `userid` = `_userid`;
END\\
DELIMITER ;
CALL `deleteUser`(100);
SELECT `id` FROM `Table1`;
SELECT `user_id` FROM `Table2`;
SELECT `userid` FROM `Table3`;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.