Maybaygiare.org

Blog Network

Slett Alle Data i En MySQL Tabell

MySQL er verdens mest populære åpen kildekode database, anerkjent for sin hastighet og pålitelighet. Denne artikkelen ser på hvordan du sletter alle dataene fra En MySQL-databasetabell og hvordan det påvirker automatisk inkrementelle felt.

Slett og Avkort

det er to måter å slette alle dataene i En MySQL database tabell.

TRUNCATE TABLE tablename; dette vil slette alle data i tabellen veldig raskt. I MySQL bordet er faktisk droppet og gjenskapt, derav hastigheten på spørringen. Antall slettede rader for Returnerte myisam-tabeller er null; for INNODB returnerer det faktiske nummeret slettet.

DELETE FROM tablename; dette sletter også alle dataene i tabellen, men er ikke så raske som å bruke «TRUNCATE TABLE» – metoden. I MySQL > = 4.0 returneres antall rader slettet; I MySQL 3.23 er nummeret som returneres alltid null.

Kolonner For Automatisk Økning For MyISAM-Tabeller

hvis du har en primærnøkkelkolonne for automatisk økning i MyISAM-tabellen, blir resultatet litt annerledes avhengig av hvilken slettemetode du bruker. Ved bruk av» AVKORT TABELL » metoden automatisk økning frø verdi vil bli tilbakestilt tilbake til 1. Ved bruk av» SLETT FRA » – metoden vil automatisk økning frø bli igjen som det var før (f. eks.

Merk at Dette gjelder For MySQL>= 4.0; fra min lesing AV AVKORTET manuell side I MySQL 3.23 AVKORTET fungerer akkurat SOM SLETT som ville bety at automatisk økning frø ikke er tilbakestilt. Jeg har for øyeblikket ikke en 3.23 database satt opp for å teste den, så kan ikke bekrefte dette.

Kolonner For Automatisk Økning for Innodb-Tabeller

for innodb-tabeller, uansett om du bruker metodene «AVKORT TABELL» eller «SLETT FRA», tilbakestilles ikke feltet automatisk økning. Hvis du har satt inn 5 poster i en ny tabell, slettet alle poster og satt inn en annen post, vil feltet ha en verdi på 6, uansett hvilken metode du brukte.

Oppdater 17 Februar 2009: jeg opprinnelig skrev dette innlegget Når MySQL 4.0 var den gjeldende versjonen. Jeg har nettopp testet ovenstående nå på Et innodb-bord ved Hjelp Av MySQL 5.0, og ved HJELP AV TRUNCATE tilbakestilles automatisk inkrementsfelt tilbake til standard. Så enten endret oppførselen på et tidspunkt, eller jeg var feil når jeg gjorde ovennevnte uttalelse.

er du virkelig sikker på at du vil slette alle data?

før du sletter alle dataene i en database, bør du sørge for at du virkelig har tenkt å slette alle dataene. Det lønner seg ofte først å «VELGE * fra tabellnavn» eller «VELG TELLER(*) fra tabellnavn» før du gjør det for å sjekke at det virkelig er trygt å slette alle data. Kanskje du virkelig vil gjøre noe som «SLETT fra tablename HVOR foo =’ bar ‘» i stedet.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.