Gå til innhold

Hjelp til adding av kolonne og sletting av rows


Anbefalte innlegg

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 av TheClown
Lenke til kommentar
Videoannonse
Annonse
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 av crowly
Lenke til kommentar

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 av Manfred
Lenke til kommentar

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 av TheClown
Lenke til kommentar
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

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...