El 7/05/07, Alvaro Herrera <[EMAIL PROTECTED]> escribió: > Rodrigo Fuentealba escribió: > > > >En ADOdb (http://adodb.sourceforge.net), cuando no especifico los > > >datos que corresponden con la clave primaria (por ejemplo, el código > > >de la misma), > > > > Cuando no especifico los datos que corresponden con la clave primaria > > y ésta es serial, entonces se produce un error... el cual lógicamente > > no debiera producirse... si es serial, ya tiene un valor per-default! > > Probablemente tienes datos en la tabla cuyos valores son superiores al > valor que tiene la secuencia. > > Usa setval() para corregir la secuencia,
Lo he probado con tablas vacías, con un registro, con 10 registros... y continúa; el problema no está en la tabla, ni en la secuencia. Preguntaba esto porque hay un problema en la clase PHP para manejar estas cositas, pero para depurarlo necesitaba saber algo más de PostgreSQL. De hecho, la misma query que "supuestamente" debiera generarse tanto con ActiveRecord como con una consulta preparada, falla solo en ActiveRecord. > tomando el valor de un select max() de la tabla. Para evitar el > problema en el futuro, asegurate que todas las inserciones se hacen > usando la secuencia, es decir, que no especifiques valores manualmente > para esa columna. Yup. Lo sé. (Llevo poco más de un año machacándome con PostgreSQL, PostGIS y otras cositas, e inclusive lo utilizo para enseñar a modelar datos.). -- Rodrigo Fuentealba Cartes Desarrollador de Sistemas Web Registered User 387639 - http://counter.li.org

