Drop vs Truncat
Drop i Truncate són dues sentències 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. Tant les instruccions Drop com Truncate eliminen totes les dades d'una taula i la instrucció SQL relacionada. L'operació de supressió no és efectiva en aquest cas perquè utilitza més espais d'emmagatzematge que Drop i Truncate.
En cas que volem descartar una taula d'una base de dades amb totes les seves dades, SQL ens permet fer-ho 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, una taula, un índex o una vista existents. Elimina tota la informació d'una taula, així com l'estructura de la taula de la base de dades. A més, potser volem desfer-nos de totes les dades d'una taula simplement, però sense la taula, i podem utilitzar la instrucció Truncate en SQL en aquest escenari. Truncar també és una ordre DDL i elimina totes les files d'una taula, però conserva la mateixa definició de la taula per a un ús futur.
Ordre de baixada
Com s'ha esmentat anteriorment, l'ordre Drop elimina la definició de la taula i totes les seves dades, restriccions d'integritat, índexs, activadors i privilegis d'accés, que es van crear en aquesta taula en particular. Per tant, elimina completament l'objecte existent de la base de dades i les relacions amb altres taules també deixaran de ser vàlides després d'executar l'ordre. També elimina tota la informació sobre la taula del diccionari de dades. A continuació es mostra la sintaxi típica per utilitzar la instrucció Drop en una taula.
DEIXA LA TAULA
Simplement hem de substituir el nom de la taula que volem eliminar de la base de dades a l'exemplar 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 per una restricció de clau estrangera. En aquest cas, primer s'hauria d'eliminar la restricció de clau estrangera de referència o aquesta taula en particular. A més, la declaració Drop no es pot aplicar a les taules del sistema de la base de dades.
Com que l'ordre Drop és una declaració de confirmació automàtica, l'operació un cop activada no es pot revertir i no es dispararà cap activador. Quan s'elimina una taula, totes les referències a la taula no seran vàlides i, per tant, si volem tornar a utilitzar la taula, s'ha de recrear amb totes les restriccions d'integritat i privilegis d'accés. Totes les relacions amb les altres taules també s'han de localitzar de nou.
Tronca l'ordre
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 segueixen sent les mateixes. Truncate elimina les dades d'una taula desassignant les pàgines de dades utilitzades per emmagatzemar les dades de la taula, i només aquestes desassignacions de pàgines es conserven al registre de transaccions. Per tant, utilitza menys recursos de registre de transaccions i recursos del sistema en comparació amb altres ordres SQL relacionades com Suprimeix. Així que Truncate és una declaració una mica més ràpida que altres. A continuació es mostra la sintaxi típica per a l'ordre Truncate.
TRUNCAR LA TAULA
Hem de substituir el nom de la taula, de la qual volem eliminar totes les dades, amb la sintaxi anterior.
Truncate no es pot utilitzar en una taula a la qual s'ha fet referència una restricció de clau estrangera. Utilitza una confirmació automàticament abans d'actuar i una altra commit després, de manera que és impossible la recuperació de la transacció i no s'activa cap activador. Si volem reutilitzar la taula només necessitem accedir a la definició de taula existent a la base de dades.
Quina diferència hi ha entre Drop i Truncate?
Tant les ordres Drop com Truncate són ordres DDL i també declaracions de confirmació automàtica, de manera que les transaccions realitzades amb aquestes ordres no es poden revertir.
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 permanentment de la base de dades amb totes les referències, mentre que l'ordre Trunca només elimina totes les dades. les files d'una taula i conserva l'estructura de la taula i les seves referències.
Si s'elimina 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. Per tant, si la taula s'ha de reutilitzar, 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 romanen per a un ús futur i, per tant, cap de les recreacions anteriors no és necessària per reutilitzar-la.
Quan s'apliquen aquestes ordres, hem de tenir cura d'utilitzar-les. A més, hauríem de tenir una millor comprensió de la naturalesa d'aquestes ordres, com funcionen i també una planificació acurada abans d'utilitzar-les per evitar que f altin elements essencials. Finalment, aquestes dues ordres es poden utilitzar per netejar les bases de dades de manera ràpida i senzilla, consumint menys recursos.