Ya expuse mis argumentos, los documente, puse referencias de peso.
No voy a meterme en una flag pk ward por el tema.
Los autoincrementales sirven para ciertos tipos de problemas, simples o no, depende de una valoración subjetiva.
Usarlos o no depende de los requerimientos del sistema y no de sin fáciles de usar o si el SGBD los provee o no.
Tan esenciales no son, si ORACLE, que no necesitó explicar que es como SGBD, provee IA pero mediante triggers, y no tan directo como otros gestores.
Si fueran esenciales, no lo haría tan "complejo".
En ciertas circunstancias puede complicar o imposibilitar la solución.
La propuesta de clave calculada que explique en otras oportunidades no tiene el problema de los AI.
Es una solución simple (lo suficiente como para que se me haya ocurrido a mi). Fácil de instrumentar. Portable a cualquier SGBD.
Cada cual sabrá cuanto ajo y agua soportará.
Saludos: Miguel, La Pampa (RA)
A field that contains automatically incrementing values becomes read-only and cannot be changed with an insert, update, or replace operation. Attempting to update such a field generates an error message unless you set the cursor AutoIncError property using the CURSORSETPROP( ) function to False (.F.) or turn the error message off by using the SET AUTOINCERROR command. For more information, see CURSORSETPROP( ) Function and SET AUTOINCERROR Command.
Tables containing automatically incrementing field values append table-buffered records approximately 35% slower than tables without automatically incrementing field values, which might affect performance. When using table buffering, the table header is locked when the record is appended.
Visual FoxPro does not manage gaps in generated sequences. Gaps can be caused by reverting an appended or inserted record or by failing to update the base table and so on. In all cases, the unused value is lost, and the next generated value remains the same as if the append or insert operation succeeded.
Versions prior to Visual FoxPro 8.0 cannot recognize tables that use automatically incrementing field values. If you remove autoincrementing for fields, the current state containing the last incrementing and incremental values is cleared from the table (.dbf) field subrecord and discarded. The table (.dbf) type is restored to the current Visual FoxPro type value. The automatically incrementing values stored previously in each record remain
Dice que son un 35% más lentas una tabla que contiene campos autoincrementales que una que no lo contiene, además en el ejemplo de Antonio Meza sobre el uso de Foxydb, en lugar de utilizar un campo autoincremental en la tabla usaba la función code para obtener un código correlativo, que reemplazaba en la tabla auxiliar donde tenía los datos y luego pasaba dicha información a MySQL.
Yo, desde que salió la versión 6.0 de Visual Fox que la uso y hace unos cuatro años me pasé a la versión 9 y ahí comencé a utilizar los campos autoincrementales. En la versión 6, al no existir dicha posibilidad, no me quedaba otra que hacer una tabla donde tener los campos claves para ir numerando.
El tema es ése, al leer en la ayuda de Visual Fox que era un 35% más lenta.... me hizo dudar de todo.
Gracias por sus respuestas
http://www.firebirdnews.org/firebird-support-for-identity-columns-in-3-0/
Hola mapner:
Sólo espero una respuesta sencilla como que si los correlativos son opcionales u obligatorios en FoxyDb.
Gracias
Mario Escudero
Rpm #995817087
www.cheff2000.com
Enviado desde mi móvil
Eso mismo es lo que hago. En conclusión, el código correlativo adicional sería un campo más opcional, correcto? Porque pienso que si no se va a modificar para nada entonces bastaría usar el Id AI también como el código del producto, cliente, etc...
Gracias
Mario Escudero
Rpm #995817087
www.cheff2000.com
Enviado desde mi móvil
Evítate problemas y crea un campo incremental por cada tabla y le asignas PK.
MK
Antonio, viéndolo así creo que es bueno contar con un correlativo ya que, como su nombre lo dice, mantendrá la secuencia o correlatividad real y visual de los registros (artículos, clientes, proveedores, etc).
Gracias nuevamente
Un abrazo
Mario Escudero
Rpm #995817087
www.cheff2000.com
Enviado desde mi móvil