2009-05-17 27 views
6

Estoy tratando de insertar una fila en una tabla, utilizando un valor que se deriva de otra tabla. Aquí está la instrucción SQL que estoy tratando de usar:Insertar una fila en DB2 desde una sub selección - Error NULO

INSERT INTO NextKeyValue(KeyName, KeyValue) SELECT 'DisplayWorkItemId' AS KeyName, (MAX(work_item_display_id) + 1) AS KeyValue FROM work_item; 

lo tanto, yo estoy tratando de crear una fila en NextKeyValue que tiene 'nombre de clave' de 'DisplayWorkItemId' y 'KeyValue' de uno más que el valor máximo en work_item.work_item_display_id.

La instrucción SELECT en la consulta anterior devuelve el resultado esperado, cuando lo ejecuto por sí mismo.

Toda la consulta SQL es que me da el siguiente error, sin embargo:

Error: DB2 SQL Error: SQLCODE=-407, SQLSTATE=23502, SQLERRMC=TBSPACEID=2, TABLEID=75, COLNO=2, DRIVER=3.50.152 SQLState: 23502 ErrorCode: -407

Lo que significa esto, y lo que está mal con mi consulta?

+0

+1 Sugiero que cambie el título de la pregunta a algo así como "Insertar una fila de sub-selección - error NULL" y agregue la etiqueta "SQL", ya que este problema es genérico y no específico de DB2. –

+0

buena idea. Solo lo hice. – pkaeding

Respuesta

15

La explicación más probable es que tiene columnas adicionales en la tabla NextKeyValue que no pueden aceptar valores NULL, y esta instrucción INSERT está "intentando" poner NULL en ellas.

¿Es ese el caso por casualidad?

+0

Sí, eso fue todo. Había un montón de otras columnas en esa tabla que no se podían anotar que me olvidé. ¡Gracias! – pkaeding

Cuestiones relacionadas