MySQL - Autogenerar ID de una tabla

 
Vista:

Autogenerar ID de una tabla

Publicado por CarlosJ (1 intervención) el 14/05/2010 23:21:28
Hola a todos, tengo una tabla con códigos secuenciales, así:

-----------
| codigo |
-----------
| P0001 |
| P0002 |
| P0003 |
| P0004 |
| P0005 |
| P0006 |

y así varios códigos
Quiero crear un procedimiento almacenado de tal forma que cada vez que lo llame, genere el código que deba continuar en la serie.

Encontré el siguiente script para MS-SQL

create procedure usp_GenerarCodigo
as
declare @codigo varchar(6)
set @codigo=(select max(codigo) from tabla1)
set @codigo='C' + right('0000' + ltrim(right(isnull(@codigo, '0000'),4)+1),4)
select @codigo
go

lo quise pasar a MySQL con el siguiente script, pero no funciona, y tampoco bota ningún error

create procedure GenerarCodigoPacientes()
begin
declare next_cod varchar(6);
set next_cod=(select max(codigo) from pacientes);
set next_cod='P' + right('0000' + ltrim(right(isnull(codigo, '0000'),4)+1),4);
select next_cod;
end$$

Gracias por la ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Autogenerar ID de una tabla

Publicado por Jaime Bolivar Arambulo (1 intervención) el 29/04/2013 18:02:06
Hola para que lo puedas realizar en MYSQL tendrias que tener la siguiente sintaxis.

1
2
3
4
5
6
7
8
9
10
11
DELIMITER $$
CREATE PROCEDURE `tienda`.`usp_generacodigos`()
BEGIN
DECLARE codigo INT;
DECLARE var VARCHAR(50);
SELECT COUNT(codigo) INTO codigo FROM tabla1;
SET var=CONCAT('C',RIGHT(CONCAT('0000',codigo+1),4));
SELECT var ;
END$$
 
DELIMITER ;


Dios te bendiga.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar