que es mejor utilizar para guardar datos a una tabla, el REPLACE o el INSERT.
pss no se pero me parece que el replace es mejor
| |||
Respuesta: replace o insert que es mejor? nooo pero yo hablo es de la sentencia REPLACE no update |
| ||||
Respuesta: replace o insert que es mejor? Exactamente así: REPLACE hace lo que literalmente significa la palabra: reemplazar un registro dado por otro si existe (requiere acceso al valor de la clave primaria) y lo crea si no lo encuentra. Hay un pequeñísimo problema: No funciona correctamente en tablas relacionales donde si se usa contra la tabla base. Esto sucede porque para reemplazar un registro, primero lo debe borrar, y si la tabla es usada como referencia como FK desde otras tablas, esto choca contra la integridad referencial. Si no se ha determinado un CASCADE, no te dejará reemplazarla porque no la puede borrar. Y si has puesto CASCADE, puede eliminar todos los registros vinculados, aunque esa no haya sido tu intención. No te debes olvidar que las restricciones de integridad referencial tienen jerarquía superior a cualquier otra operación. Además, si usas REPLACE con solo un grupo de columnas de la tabla, el resto de las columnas serán puestas a NULL, porque un REPLACE no es un UPDATE. No hace una copia del registro reemplazado y actualiza valores: crea uno nuevo, donde esos valores no están llegando y por tantro son NULL. Esto tiene dos problemas: Si las columnas omitidas son NOT NULL, el REPLACE no se podrá efectuar, y si tenían valores, los pierdes. Sintetizando: - El REPLACE no es un UPDATE, es más un INSERT. Sólo es eficiente en ciertos contextos, donde la inserción se deba realizar si o si. - Si no vas a usar todos los valores que puedan existir en esa tabla originalmente, no te conviene porque perderás datos. - Si hay dependencias con esa tabla, tendrás problemas al realizarlo.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
Etiquetas: |