TheClown Skrevet 6. september 2007 Del Skrevet 6. september 2007 (endret) Heisann, jeg har 2 korte spørsmål. 1. Hvordan kan man legge til en kolonne i MySQL? Navn**ID**LOL Skal bli til Navn**ID**LOL**Ny kolonne her 2. Hvordan kan man slette f.eks de 5 siste radene i et table? Har brukt delete table før, men det er veldig tungvindt å slette hele tablet når jeg bare skal ha bort innholdet i det og ikke navnene og instillingene på kolonnene. Endret 6. september 2007 av TheClown Lenke til kommentar
roac Skrevet 6. september 2007 Del Skrevet 6. september 2007 1. ALTER TABLE ... 2. Rekkefølgen til radene i tabellen kan du ikke garantere, så spørringen din gir egentlig ikke noen mening. Men det du er ute etter er DELETE, og som du ser kan du spesifisere både ORDER BY og LIMIT i en DELETE-kommando. Lenke til kommentar
Crowly Skrevet 7. september 2007 Del Skrevet 7. september 2007 (endret) 2. Rekkefølgen til radene i tabellen kan du ikke garantere, så spørringen din gir egentlig ikke noen mening. Men det du er ute etter er DELETE, og som du ser kan du spesifisere både ORDER BY og LIMIT i en DELETE-kommando. WHERE bør vel også vurderes, slik at man er mest mulig sikker på at rett rad blir slettet. Skal du slette innholdet i en tabell kan du også bruke Truncate(). TRUNCATE TABLE empties a table completely. Logically, this is equivalent to a DELETE statement that deletes all rows, but there are practical differences under some circumstances. Endret 7. september 2007 av crowly Lenke til kommentar
Manfred Skrevet 7. september 2007 Del Skrevet 7. september 2007 (endret) Ved TRUNCATE tømmer du hele tabellen og nullstiller alle auto_increment og slikt, så alle begynner på starten igjen. I en DELETE kan du helt fint bruke WHERE. DELETE FROM Table WHERE ID < xx I mySql kan man vel også gjøre noe slikt for å slette de 5 øverste: DELETE FROM Table WHERE id IN(SELECT id FROM Table ORDER BY ID ASC LIMIT 5) Endret 7. september 2007 av Manfred Lenke til kommentar
TheClown Skrevet 7. september 2007 Forfatter Del Skrevet 7. september 2007 (endret) Nå er jeg forsatt litt n00b; men. Enkleste måte å slette alle rows i et table? DELETE FROM [tablename] ? Again; takk crowly For å slette alle rowsa funka det faktisk best med DELETE FROM [tablename] Easy Endret 7. september 2007 av TheClown Lenke til kommentar
roac Skrevet 7. september 2007 Del Skrevet 7. september 2007 For å slette alle rowsa funka det faktisk best med DELETE FROM [tablename] 9446190[/snapback] Det kommer helt an på. Hvis evt autoinkrementerende IDer kan gjenbrukes, eller det ikke er autoinkrementerende IDer på tabellen, så er det beste TRUNCATE [tablename] da det er en operasjon som ikke logges. Lenke til kommentar
Crowly Skrevet 7. september 2007 Del Skrevet 7. september 2007 Begge metodene utfører jobben like bra (hvor truncate er raskere, se under) med å tømme tabellen, kommer ann på hva du vil i tillegg som utgjør hvilken kommando du bør bruke. Fra linken min over TRUNCATE TABLE empties a table completely. Logically, this is equivalent to a DELETE statement that deletes all rows, but there are practical differences under some circumstances. For InnoDB before version 5.0.3, TRUNCATE TABLE is mapped to DELETE, so there is no difference. Starting with MySQL 5.0.3, fast TRUNCATE TABLE is available. However, the operation is still mapped to DELETE if there are foreign key constraints that reference the table. (When fast truncate is used, it resets any AUTO_INCREMENT counter. From MySQL 5.0.13 on, the AUTO_INCREMENT counter is reset by TRUNCATE TABLE, regardless of whether there is a foreign key constraint.) For other storage engines, TRUNCATE TABLE differs from DELETE in the following ways in MySQL 5.0: Truncate operations drop and re-create the table, which is much faster than deleting rows one by one. Truncate operations are not transaction-safe; an error occurs when attempting one in the course of an active transaction or active table lock. The number of deleted rows is not returned. As long as the table format file tbl_name.frm is valid, the table can be re-created as an empty table with TRUNCATE TABLE, even if the data or index files have become corrupted. The table handler does not remember the last used AUTO_INCREMENT value, but starts counting from the beginning. This is true even for MyISAM and InnoDB, which normally do not reuse sequence values. Since truncation of a table does not make any use of DELETE, the TRUNCATE statement does not invoke ON DELETE triggers. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå