Incidencias (y 2) PostgreSQL ODBC

Anuncio
Incidencias (y 2) PostgreSQL ODBC
Adrian Gibanel Lopez
11 de febrero de 2010
Índice
1. Valor null viola restricción not null
2
2. Como ejecutar código
3
1.1. Problematica . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2. Script de denición de autoincrementabilidad . . . . . . . . .
1.3. Script de denición de valor actual de secuencia . . . . . . . .
1
2
2
2
1.
Valor null viola restricción not null
1.1. Problematica
El problema valor null viola restricción not null viene originado por no
tener columnas de clave primaria id denida como autoincrementables. Otros
problemas pueden surgir por las claves primarias id que no son autoincrementables. Veremos cómo denir de forma automática con un script de bash
que las claves primarias id de varias tablas sean autoincrementables. También veremos cómo tendremos que especicar cual es el valor actual de la
"secuencia.asociada a la columna id aunque de forma manual.
1.2. Script de denición de autoincrementabilidad
NOMBRES_TABLAS="EmpresaTransporte almacen almacen_IN \
almacen_IN_externo almacen_IN_interno almacen_OUT \
campana cereal conductor cupo \
cupo_entrada_agricultores cupo_movimientos_almacenes \
cupo_salidas entrada matricula variedad"
for ffile in $NOMBRES_TABLAS; do
echo "CREATE SEQUENCE ${ffile}_id_seq;"
echo " ALTER TABLE \"${ffile}\""
echo " ALTER COLUMN id"
echo "
SET DEFAULT NEXTVAL('${ffile}_id_seq');"
echo ""
done
Una vez guardado el script, lo ejecutamos y volcamos su salida a un chero. El chero a continuación se puede leer con cualquier editor de textos para
poder ser copiado y pegado en la ventana de Herramientas para Consultas
como se explica en la sección 2
1.3. Script de denición de valor actual de secuencia
NOMBRES_TABLAS="EmpresaTransporte almacen almacen_IN \
almacen_IN_externo almacen_IN_interno almacen_OUT \
campana cereal conductor cupo \
cupo_entrada_agricultores cupo_movimientos_almacenes \
cupo_salidas entrada matricula variedad"
for ffile in $NOMBRES_TABLAS; do
echo "ALTER SEQUENCE ${ffile}_id_seq"
echo "START NNNNN;"
done
Una vez guardado el script, lo ejecutamos y volcamos su salida a un chero. El chero a continuación se puede leer con cualquier editor de textos para
2
poder ser copiado y pegado en la ventana de Herramientas para Consultas
como se explica en la sección 2
2.
Como ejecutar código
Nos conectamos a la base de datos. Seleccionamos el menu Herramieny dentro de él Herramientas para Consultas.
En ella copiaremos y pegaremos (o escribiremos) el código a copiar:
Y seleccionaremos el menú Consulta y la opción Ejecutar.
Si se ejecuta bien nos tendría que marcar que la sentencia se ejecutó con
éxito sin resultados.
tas
3
Descargar