hola gente, necesito generar códigos primari key auto_increment tipo 00001,00002,00003.....u otro tipo como proy01,proy02, proy03.... y mostrarlos a los usuarios para que identifiquen a que tipo de proyecto de investigacion pertenecen, porf si alguien podria ayudarme
generar códigos primari key auto_increment tipo 00001,00002,00003
Started by
caac
, Jan 13 2014 03:57 PM
4 replies to this topic
#1
Posted 13 January 2014 - 03:57 PM
#2
Posted 13 January 2014 - 04:19 PM
Compañero, he editado el título del mensaje pues no es para nada intuitivo. ´
Saludos
Saludos
#3
Posted 14 January 2014 - 07:00 AM
No hay forma directa con el motor de base de datos.
Tendrias que hacerlo con tu codigo PHP, suponiendo que tienes un autoincrement normal (1,2,3,4,5,6... 999, 1000, 1001)
utilzamos strlen para calcular
Al final quedaria algo como 00006.
Esto es solo una idea amigo, se me ocurren 3 procesos.
1. Dejar el autoincrement, y hacer el proceso que te mencione cada vez que se necesite.
Problema: Es que debes de hacer este proceso cada vez que quieras buscar o hacer algo con los registros para que el usuario lo vea asi.
2. Contar la cantidad de registros, y apartir de eso generar un ID como 0XXXX (aqui ya no seria autoincrement)
Problema: debes hacer un lock table para que no se registren multiples ID similares.
3. Crear un Stored Procedure, para que el motor de base de datos lo genere los ID como los deseas.
Mi recomendación es, comprobar que tipo de dato se va a manejar en laparte del back-end y en el front-end, mostrar "proy01" como ID tiene muchas formas de solucionarse.
Cuando tengas problemas con codigo qu hayas creado, estamos aqui para ayudarte.
Saludos
Tendrias que hacerlo con tu codigo PHP, suponiendo que tienes un autoincrement normal (1,2,3,4,5,6... 999, 1000, 1001)
utilzamos strlen para calcular
delphi
$id = "6"; //Notese que es un string $cantidadDigito = strlen($id); $numCerosMaximo = 5; //es como decir 00000 for($i = $cantidadDigito; $i < 5; $i++){ $id = "0".$id; }
Al final quedaria algo como 00006.
Esto es solo una idea amigo, se me ocurren 3 procesos.
1. Dejar el autoincrement, y hacer el proceso que te mencione cada vez que se necesite.
Problema: Es que debes de hacer este proceso cada vez que quieras buscar o hacer algo con los registros para que el usuario lo vea asi.
2. Contar la cantidad de registros, y apartir de eso generar un ID como 0XXXX (aqui ya no seria autoincrement)
Problema: debes hacer un lock table para que no se registren multiples ID similares.
3. Crear un Stored Procedure, para que el motor de base de datos lo genere los ID como los deseas.
Mi recomendación es, comprobar que tipo de dato se va a manejar en laparte del back-end y en el front-end, mostrar "proy01" como ID tiene muchas formas de solucionarse.
Cuando tengas problemas con codigo qu hayas creado, estamos aqui para ayudarte.
Saludos
#4
Posted 30 January 2014 - 11:09 AM
Hola amigo,
Lo que pides para una base de datos en MySql seria algo asi:
Para la segunda opcion que requieres de proy01,proy02, etc, no te recomiendo utilizar strings como llaves primarias. lo que se me ocurre es que puedes hacer una catalogo de proyectos y hay pongas los proyectos de los que dispones y los mandes a traer en donde requieras como llave foranea
Saludos
Lo que pides para una base de datos en MySql seria algo asi:
delphi
CREATE TABLE `bd`.`new_table` ( `idnew_table` INT ZEROFILL NOT NULL AUTO_INCREMENT , `new_tablecol` VARCHAR(45) NULL , PRIMARY KEY (`idnew_table`) ); INSERT INTO `bd`.`new_table` (`new_tablecol`) VALUES ('valor 1'); INSERT INTO `bd`.`new_table` (`new_tablecol`) VALUES ('valor 2'); INSERT INTO `bd`.`new_table` (`new_tablecol`) VALUES ('valor 3');
Para la segunda opcion que requieres de proy01,proy02, etc, no te recomiendo utilizar strings como llaves primarias. lo que se me ocurre es que puedes hacer una catalogo de proyectos y hay pongas los proyectos de los que dispones y los mandes a traer en donde requieras como llave foranea
Saludos
#5
Posted 07 February 2014 - 12:16 PM
Hala buenos Tardes nos se si es muy tarde para tu pregunta te envió esta código que creo que es lo que buscas
php









