Jaime Casanova escribió:
2010/3/16 Oswaldo Hernández <lis...@soft-com.es>:
La cuestión es que mis id de registro no son normales, simplificando avanzan
de 100 en 100, entonces en rango se reduce a 42 millones. Esa es la causa de
querer aprovechar ese byte. Lo meditaré a ver que solución tomo.
arriesgandome a parecer tonto, no es mas facil usar una secuencia
normal, ej: 1, 2, 3...
y luego al mostrar o hacer algun proceso raro multiplicarlo por 100?
No, no es para mostrar el valor ni para hacer cálculos con él, se
utiliza únicamente cono identificador del registro.
El tema es que hay un sistema de replicación asíncrona por medio. Si
utilizara nextval() de la forma habitual me encontraría con el problema
que se se generan los mismos id en varios sitios simultáneamente, y al
cruzarse los datos tendría problemas.
Simplificando, lo que hago es utilizar los últimos dígitos del id como
identificador del sitio donde se crea el registro. Para ello en vez de
utilizar nextval() he hecho otra función que al nextval normal le agrega
la identificación del site.
De esta forma los id creados en el site 5 se generarán como 105, 205,
305, ... en el site 6 serán 106, 206, 306, ... etc.
Saludos,
--
Oswaldo Hernández
--
TIP 5: �Has le�do nuestro extenso FAQ?
http://www.postgresql.org/docs/faqs.FAQ.html