Python - Ayuda procedimiento SQL

 
Vista:
sin imagen de perfil

Ayuda procedimiento SQL

Publicado por Jose Luis (12 intervenciones) el 31/01/2015 18:07:27
Hola, necesito crear un procedimiento llamado "insConductor" para insertar un conductor nuevo en la base de datos y que compruebe que ningún atributo es nulo, que el atributo "DNI" es de la forma "dddddddd" donde las d pueden tomar los valores '0' ... '9'. Además se ha de comprobar que la provinca sea igual a uno de los códigos que aparece en la siguiente tabla https://www.dropbox.com/s/qo0pwt5ipk8t3wt/provincias.txt?dl=0, para ello se creará una nueva tabla con los datos del fichero y se comprobará que el código introducido corresponde con el de una provincia.

CONDUCTOR(DNI, Nombre, Direccion, Provincia)

Pues quiero saber si mi codigo es correcto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
drop procedure if exists insConductor;
 
 
delimiter |
create procedure insConductor(dni char(8),nom varchar(50), dir varchar(40),prov varchar(20))
begin
	if(dni<>'' and nom<>'' and dir<>'' and prov<>'') then
		if(esDNI(dni)=1) then
			select dni,nom,dir,prov;
			insert into CONDUCTOR values (dni,nom,dir,prov);
		end if;
	end if;
end;
|
delimiter ;

teniendo en cuenta que:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
drop function if exists esDNI;
 
delimiter //
create function esDNI(cad char(8)) returns int
begin
	declare k int default length(cad);
	declare i int default 1;
	while(i<=k) do
		if (ascii(substring(cad,i,1))>=48 and ascii(substring(cad,i,1))<=57) then
			set i=i+1;
		else
			return 0;
		end if;
	end while;
	return 1;
end;
//
delimiter ;

Y querria saber como comprobar que la provincia es igual a uno de los codigos del .txt
Gracias de antemano
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