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