Tengo una pregunta sobre el siguiente código, generé una estructura que nos permite simular jugar a la ruleta rusa, pero me indica un error en el procedimiento, en la línea 3, al borrarla
me vuelve a indicar error, ayuda :P
CREATE TABLE jugadores(
id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
nombre VARCHAR(25)
);
INSERT INTO jugadores (nombre)
VALUES ('Tim'),
('Matt'),
('Jhon');
DELIMITER //
CREATE FUNCTION random ()
RETURNS INT
BEGIN
RETURN ( SELECT ROUND( 1 + RAND() * 5 ) );
END//
CREATE PROCEDURE ruleta_rusa (recamara INT, id INT)
BEGIN
SET @disparo = random()
SET @jugador = (SELECT nombre FROM jugadores WHERE jugadores.id = id)
IF recamara = @disparo THEN
SELECT CONCAT(@jugador, 'ha muerto') AS 'Ruleta rusa'
DELETE FROM jugadores WHERE jugadores.id is id
ELSE
SELECT CONCAT(@jugador, 'ha sobrevivido') AS 'Ruleta rusa'
IF COUNT(SELLECT id FROM jugadores) > id THEN
CALL ruleta_rusa(recamara, id+1)
ELSE
SELECT 'Todos los jugadores han sobrevivido' AS 'Ruleta rusa'
END IF;
END IF;
END//
DELIMITER ;
me vuelve a indicar error, ayuda :P
CREATE TABLE jugadores(
id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
nombre VARCHAR(25)
);
INSERT INTO jugadores (nombre)
VALUES ('Tim'),
('Matt'),
('Jhon');
DELIMITER //
CREATE FUNCTION random ()
RETURNS INT
BEGIN
RETURN ( SELECT ROUND( 1 + RAND() * 5 ) );
END//
CREATE PROCEDURE ruleta_rusa (recamara INT, id INT)
BEGIN
SET @disparo = random()
SET @jugador = (SELECT nombre FROM jugadores WHERE jugadores.id = id)
IF recamara = @disparo THEN
SELECT CONCAT(@jugador, 'ha muerto') AS 'Ruleta rusa'
DELETE FROM jugadores WHERE jugadores.id is id
ELSE
SELECT CONCAT(@jugador, 'ha sobrevivido') AS 'Ruleta rusa'
IF COUNT(SELLECT id FROM jugadores) > id THEN
CALL ruleta_rusa(recamara, id+1)
ELSE
SELECT 'Todos los jugadores han sobrevivido' AS 'Ruleta rusa'
END IF;
END IF;
END//
DELIMITER ;