Baixar contra el tronc

Drop i Truncate són dues instruccions SQL (Structured Query Language) que s’utilitzen als sistemes de gestió de bases de dades, on volem eliminar els registres de dades d’una base de dades. Les instruccions Drop i Truncate eliminen les dades senceres d'una taula i la sentència SQL relacionada. L’operació Eliminar no és efectiva en aquest cas perquè utilitza més espais d’emmagatzematge que Drop i Truncate.

En cas que, si volem descartar una taula d'una base de dades amb totes les seves dades, SQL ens permet realitzar-la fàcilment mitjançant la instrucció Drop. L'ordre Drop és una ordre DDL (Data Definition Language) i es pot utilitzar per destruir una base de dades, taula, índex o vista existents. Elimina tota la informació d’una taula, així com l’estructura de la taula de la base de dades. A més, és possible que desitgem desfer-se de totes les dades d'una taula simplement, però sense la taula, i podem utilitzar la instrucció Truncate a SQL en un escenari així. Truncate també és una ordre DDL i elimina totes les files d'una taula, però manté la definició de la taula per a ús futur.

Deixa el comandament

Com s'ha esmentat anteriorment, l'ordre Drop elimina la definició de la taula i totes les seves dades, restriccions d'integritat, índexs, desencadenants i privilegis d'accés, que es va crear a la taula en concret. Per tant, elimina l'objecte existent de la base de dades completament i les relacions amb altres taules deixaran de ser vàlides després d'executar la comanda. També elimina tota la informació sobre la taula del diccionari de dades. A continuació, es mostra la sintaxi típica per utilitzar la declaració Drop a una taula.

TAULA DE DROP

Simplement hem de substituir el nom de la taula que volem eliminar de la base de dades a l'exemple anterior de l'ordre Drop.

És important assenyalar que la instrucció Drop no es pot utilitzar per suprimir una taula, a la qual ja s'ha fet referència amb una restricció de clau estrangera. En aquest cas, primer s'hauria d'abandonar la restricció de clau estrangera o aquesta taula en concret. També, la declaració Drop no es pot aplicar a les taules del sistema de la base de dades.

Com que el comandament Drop és una declaració de compromís automàtic, l'operació un cop disparat no es podrà tornar a generar i no es dispararan cap disparador. Quan es deixa caure una taula, no seran vàlides totes les referències a la taula i, per tant, si volem tornar a utilitzar la taula, s’ha de tornar a crear amb tots els límits d’integritat i privilegis d’accés. Totes les relacions amb les altres taules també s’han de localitzar de nou.

Ordre tronc

L'ordre Truncate és una ordre DDL, i elimina totes les files d'una taula sense cap condició especificada per l'usuari i allibera l'espai utilitzat per la taula, però l'estructura de la taula amb les seves columnes, índexs i restriccions es mantenen iguals. Truncate elimina les dades d'una taula desactivant les pàgines de dades utilitzades per emmagatzemar les dades de la taula i només es conserven aquestes desallocacions de pàgines al registre de transaccions. Per tant, utilitza menys recursos de registre de transaccions i recursos del sistema en comparació amb altres comandes SQL relacionades com Eliminar. De manera que Truncate és una declaració una mica més ràpida que altres. A continuació es mostra la sintaxi típica de l'ordre Truncate.

TAULA DE TRUNCAT

Hauríem de substituir el nom de la taula, del qual volem eliminar les dades senceres, a la sintaxi anterior.

El truncat no es pot utilitzar en una taula a la qual s'ha fet referència amb una restricció de clau estrangera. Utilitza un compromís automàticament abans d’actuar i un altre compromís després, de manera que el retorn de la transacció és impossible i no es disparen. Si volem reutilitzar la taula només haurem d’accedir a la definició de taula existent a la base de dades.

Quina diferència hi ha entre Drop i Truncate?

Les ordres Drop i Truncate són ordres DDL i també declaracions de compromís automàtic per la qual cosa les transaccions realitzades amb aquestes comandes no es poden tornar a generar.

La diferència principal entre Drop i Truncate és que l’ordre Drop elimina, no només totes les dades d’una taula, sinó que també elimina l’estructura de la taula de forma permanent de la base de dades amb totes les referències, mentre que l’ordre Truncate només elimina totes les files d’una taula. i conserva l'estructura de la taula i les seves referències.

Si es deixa caure una taula, les relacions amb altres taules deixaran de ser vàlides, i també s’eliminaran les restriccions d’integritat i els privilegis d’accés. De manera que si es vol reutilitzar la taula, s’ha de reconstruir amb les relacions, les restriccions d’integritat i també els privilegis d’accés. Però si una taula es trunca, l'estructura de la taula i les seves restriccions es mantenen per a un ús futur, de manera que no es necessita cap de les recreacions anteriors per reutilitzar-les.

Quan s’apliquen aquestes ordres, hem de ser prudents per utilitzar-les. A més, hauríem de comprendre millor la naturalesa d’aquestes ordres, el seu funcionament i també una planificació acurada abans d’utilitzar-les per tal de no perdre l’essencial. Finalment, ambdues comandes es poden utilitzar per netejar les bases de dades de forma ràpida i senzilla, consumint menys recursos.