lunes, 25 de junio de 2007

Crear, alterar o reiniciar una secuencia en PostgreSQL

En postgresql como en oracle para poder generar un numero unico facilmente necesitamos de lo que se conoce como secuencia. Para los usuarios de MySQL esto es algo nuevo ya que en mysql para un campo numero autoincrementable solo basta con poner null, aqui necesitamos algo mas de trabajo pero sin duda tener una secuencia es algo muy poderoso.

Para poder crear una secuencia en postgresql nos valemos del comando create sequence, y como un ejemplo vale mas que mil palabras, pues aqui tenemos el ejemplo completo.


Creando la secuencia serie:

Ya dentro del monitor psql tecleamos:


CREATE SEQUENCE foo start 100;


Si queremos borrarla, basta con hacer DROP SEQUENCE foo; y si lo que queremos es reiniciarla a un valor lo podemos hacer de dos formas.

La primera es mediante la función setval que se emplearia de la siguiente manera: SELECT setval('foo',1500,'t');. Si lo que queremos es reiniciarla para que empieze nuevamente desde el primer valor en este caso podemos borrarla o reiniciarla de la siguiente forma: ALTER SEQUENCE foo restart 1;

Con esto damos un primer vistazo a las secuencias que seran parte fundamental para el manejo de llaves primarias.

3 comentarios:

Anónimo dijo...

muchas gracias man, esta info la requeria urgente y me ayudaste mucho..gracias!!!

chicaker dijo...

Hola que tal muy bueno y útil. Tengo una duda, como puedo reiniciar la secuencia desde PHP al eliminar un registro en la base de datos de PHP. Elimino el registro pero no se donde ni de que manera debo colocar el query para reiniciar la secuencia sin necesidad de ir a pgadmin

Anónimo dijo...

¡Gracias!... a mi también me ha sacado de un apuro

Bahia desde el balcon...

Bahia desde el balcon...
Ixtapa Zihuatanejo