Código de MySQL - Código Autogenerado

sin imagen de perfil

Código Autogeneradográfica de visualizaciones


MySQL

Publicado el 7 de Febrero del 2017 por Luis
6.412 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
6.413 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...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s3862