Autoincremento en Postgresql no es consecutivo. Ayuuuudaaaaa

Hola buen dia.
Estoy desarrollando una aplicacion con postgresql. Tengo una tabla llamada estadocivl, su respectivo id es de tipo serial, con lo cual logicamente se debe incrementar de 1 en 1.
El problema es que cada vez que agrego un registro el autonumerico se incrementa en un numero distinto, es decir si el maximo es 5, el proximo lo inserta pero en 7, luego inserto otro y guarda el 10, luego 15 y asi sucesivamente, les muestro a continuacion el codigo que tengo en estadocivil_controller. es de hacer notar que las funciones de update y delete funcionan a la perfeccion, e incluso el insert guarda los registros bien, salvo el campo de id que no se que pasa que no se incrementa de manera consecutiva. En el modelo de estadocivil no tengo nada de codigo.
Tambien probe la tabla con el Standard Form y ahi si funciono bien. La verdad no se que este haciendo mal, quizas sea un bugs pero ya no se que hacer.
NOTA: tambien probe con mysql y pasa lo mismo. De verdad muchas gracias de antemano. Espero por favor me puedan ayudar

public function before_filter(){
if(!Auth::is_valid()){
$this->route_to("controller: login");
return false;
}
}
public function index($page=1) {
if(!is_numeric($page)) {
$page = 1;
}
$this->page = $this->Estadocivil->paginate("page: $page", 'per_page: 7');
}
public function delete() {
$id = $this->request("fl_id");
$this->Estadocivil->delete($id);
$this->route_to("action: index");
Flash::success("El registro ha sido borrado con exito");
}
public function update() {
$estadocivil = new Estadocivil();
if($estadocivil->save_from_request()){
Flash::success("Se Actualizó el registro correctamente");
}
else {
Flash::error("Se produjo un error al guardar el registros. Por Favor Verifique");
}
return $this->route_to("action: index");
}
public function insert() {
$estadocivil = new Estadocivil();
if($estadocivil->create_from_request()){
Flash::success("Se Actualizó el registro correctamente");
}
else {
Flash::error("Se produjo un error al guardar el registros. Por Favor Verifique");
}
return $this->route_to("action: index");
}

Comentarios

  • edited 6:17
    la cuestion de tu inconveniente puede por que al ser de tipo serial el cuenta de uno en uno pero si tu borras un dato el sigue en el que iba y no tiene encuenta si el anterior dato esta vacio o no, el cuenta que ya lo utilizo, es decir:

    1 registro
    2 registro2
    3 registro tres : y si borras este registro el ira al registro 4 y no se da cuenta que el registro 3 no contiene datos, sino que continua con la secuencia que llevaba, entonces debes hacer una programacion adecuada para que se sepa si cual es el registro anterior utilizado.
Sign In or Register to comment.