Cómo hacer que un segundo campo incremente automáticamente

  • Autor Autor Gridalo
  • Fecha de inicio Fecha de inicio
Gridalo

Gridalo

Kappa
Verificado por Whatsapp
Hola Amigos.

Por motivos de malos acuerdos con una empresa me veo obligado a aprender php y mysql de una forma "express", se que no es la mejor manera de aprender las cosas pero la situacion asi lo requiere.

Mis conocimientos en mysql con minimo (en php tambien), resulta que tengo una serie de campos en una tabla, esos campos son

id (auto increment)
idc

id cat
etc
etc
etc

El id como es logico se autoincrementa por cada registro nuevo en mi base de datos, sin embargo necesito que idc tambien se autoincremente y segun tengo entendido no puede haber 2 campos en la misma tabla que sean autoincrement...

Que puedo hacer? incluir en el formulario que envia los datos a la base de datos algo para que suba +1?

Siento si la pregunta es muy tonta pero no tento ni idea de esto y me esta costando empezar de 0

Un saludo
 
Última edición:
Hola Amigos.

Por motivos de malos acuerdos con una empresa me veo obligado a aprender php y mysql de una forma "express", se que no es la mejor manera de aprender las cosas pero la situacion asi lo requiere.

Mis conocimientos en mysql con minimo (en php tambien), resulta que tengo una serie de campos en una tabla, esos campos son

id (auto increment)
idc

id cat
etc
etc
etc

El id como es logico se autoincrementa por cada registro nuevo en mi base de datos, sin embargo necesito que idc tambien se autoincremente y segun tengo entendido no puede haber 2 campos en la misma tabla que sean autoincrement...

Que puedo hacer? incluir en el formulario que envia los datos a la base de datos algo para que suba +1?

Siento si la pregunta es muy tonta pero no tento ni idea de esto y me esta costando empezar de 0

Un saludo
es necesario que autoincremente? por que si va a ser igual al id entonces es innecesario.

PHP:
$rs = mysql_query("SELECT MAX(idc) FROM tabla");
$row = mysql_fetch_row($rs);
$cid = $row[0]+1;
 
asi es, debe autoincrementar por que luego se llama desde otro campo de otro tabla y es la unica manera que tengo para controlarlo (o al menos asi lo entinedo), igualmente hay 60.000 registros en la db y todos o casi todos los registros de idc van 1+1

y tambien cabe decir que los id e idc no empezaron a contar en su dia desde el mismo numero

Gracias!
 
Última edición:
La tabla esta mal planteada, como bien decis no se puede tener 2 campos autoincrementales, es una restriccion de base de datos. Pero esta restriccion es por motivos practicos dado que si tenes mas de un campo autoincremental estas diseñando mal la base de datos.

Dicho esto y si no vas a solucionar el error, para seguir soportando tu estructura los insert en esa tabla los tendrias que hacer de la siguiente forma:

insert into tablaX (idc, id cat, campoX) values ((select max(idc) from tablaX) + 1, valorParaIdCat, valorParaCampoX);
 
Como indica heyfranks, debes seleccionar el "idc" máximo y sumarle 1. Insertas con ese valor. Autoincremento manual :encouragement:

- - Edit - -

También se me ocurre que si siempre aumentan ambos campos a la vez, habrá una relación entre los mismo. También podría usar esa relación para calcular el nuevo "idc"
 
muchas gracias a todos, voy a probar a ver si me sale, pues todo lo que me deciis me pilla completamente de nuevas (nunca hice nada en php y mysql), cuando pruebe y vea que tal me pasare para comentar, despues tengo que hacer que el mismo contenido del campo "idc" se copie a otras tablas con el mismo campo asi que creo que tengo un largo camino para aprender sobre esto jeje

Un saludo!
 
Atrás
Arriba