Código de MySQL - Código Autogenerado

sin imagen de perfil
Val: 8
Ha disminuido su posición en 11 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

Código Autogeneradográfica de visualizaciones


MySQL

Publicado el 7 de Febrero del 2017 por luis
3.137 visualizaciones desde el 7 de Febrero del 2017
Creando un procedimiento almacenado en Mysql el cual al ingresar datos genere automáticamente y de manera incremental un código que esta compuesto por 2 campos (cod1 y cod2) el cual va incrementando hasta que cod1 sea distinto entonces empieza de nuevo.

Requerimientos

Tener instalado el MYSQL, en este caso se utilizo mariadb con heidi

versión 1.0

Actualizado el 15 de Marzo del 2017 (Publicado el 7 de Febrero del 2017)gráfica de visualizaciones de la versión: versión 1.0
3.138 visualizaciones desde el 7 de Febrero del 2017
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
create table prueba(
	cod1 char(9),
	cod2 char(8),
	nombre varchar(10)
	);
 
DELIMITER $
CREATE PROCEDURE cargar_datos(IN nnombre VARCHAR(20)
)
 
BEGIN
	DECLARE ncod1 CHAR(9);
	DECLARE ncod2 Char(8);
	DECLARE NUM INT;
	DECLARE FECHA CHAR(9);
	SET ncod1=(SELECT DATE_FORMAT(NOW(),'%Y%m%d'));
	SET NUM = (SELECT LTRIM(RIGHT(MAX(cod2),7)) from prueba);
	SET FECHA=(SELECT MAX(cod1) FROM PRUEBA);
 
	IF FECHA=ncod1 THEN
		IF NUM >= 1 AND NUM <= 8 THEN
			SET NUM = NUM + 1;
			SET ncod2= (SELECT CONCAT('T000000',CAST(NUM AS CHAR)));
		ELSEIF NUM >=9 AND NUM <=98 THEN
			SET NUM = NUM + 1;
			SET ncod2= (SELECT CONCAT('T00000',CAST(NUM AS CHAR)));
		ELSEIF NUM >=99 AND NUM <=998 THEN
			SET NUM = NUM + 1;
			SET ncod2= (SELECT CONCAT('T0000',CAST(NUM AS CHAR)));
		ELSEIF NUM >=999 AND NUM <=9998 THEN
			SET NUM = NUM + 1;
			SET ncod2= (SELECT CONCAT('T000',CAST(NUM AS CHAR)));
		ELSEIF NUM >=9999 AND NUM <=99998 THEN
			SET NUM = NUM + 1;
			SET ncod2= (SELECT CONCAT('T00',CAST(NUM AS CHAR)));
		ELSEIF NUM >=99999 AND NUM <=99998 THEN
			SET NUM = NUM + 1;
			SET ncod2= (SELECT CONCAT('T0',CAST(NUM AS CHAR)));
		ELSEIF NUM >=999999 AND NUM <=999998 THEN
			SET NUM = NUM + 1;
			SET ncod2= (SELECT CONCAT('T',CAST(NUM AS CHAR)));
		ELSE
			SET ncod2= (SELECT 'T0000001');
		END IF;
	ELSE
		SET ncod2= (SELECT 'T0000001');
	END IF;
 
 
	INSERT INTO PRUEBA VALUES(ncod1,ncod2,nnombre);
 
END $
 
call cargar_datos('LUIS');
 
SELECT * FROM PRUEBA;



Comentarios sobre la versión: versión 1.0 (0)


No hay comentarios
 

Comentar la versión: versión 1.0

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s3862
Revisar política de publicidad