Tag Archive for MySQL ALTER TABLE

Drop indexes

For at slette et index man har lavet i MySQL kan man benytte ALTER TABLE  eller DROP INDEX.

Ved at bruge ALTER TABLE skal der bruges DROP funktionen og det navn på det index der skal slettes, slette en PRIMARY KEY er meget simplet.

ALTER TABLE kontakt_personer DROP PRIMARY KEY;

for at droppe andre index må man spefikere det navn som skal slettes fra indexet, hvis du ikke kender navnet kan du bruge SHOW CREATE TABLE og får en liste over table struktueren og der ved finde alle de index du har til denne table.

Navnet på det valgte index kunne være NameIndex og for at slette dette index kan du udføre føglene.

ALTER TABLE kontakt_personer DROP INDEX NameIndex;

efter du har slettet dette index kan du oprette det igen ved at skrive

ALTER TABLE kontakt_personer ADD INDEX NameIndex( LastName , FirstName );

Når du slettere et index kan du ikke fortryde det så sikkere dig at du har taget en backup af din database inden du bevæger dig ud i at slette disse index.

Hvis du vælger at bruge DROP INDEX kan det gøres på denne måde

DROP INDEX NameIndex ON t;

For at slette en PRIMARY KEY skal du blot skrive

DROP INDEX PRIMARY KEY ON t;

Tilføj indexes til nuværdene table

MySQLHvis der skal tilføjes et index til en table kan du benytte ALTER TABLE eller CREATE INDEX af disse 2 satements er det ALTER TABLE der er mest flexible.For at tilføje et index til en table skal du skrive ADD foran dit statement, eks. hvis vi har en table der hedder kontakt_personer med følge felter.

CREATE TABLE kontakt_personer
(
Id INT NOT NULL,
LastName CHAR(30) NOT NULL,
FirstName CHAR(30) NOT NULL,
Email CHAR(200) NOT NULL
);

for at skabe en PRIMARY KEY på feltet Id og kombinere felterene LastName og FirstName som index skal jeg udføre følge statements. ALTER TABLE kontakt_personer ADD PRIMARY KEY (Id);
ALTER TABLE kontakt_personer ADD INDEX ( LastName , FirstName );

For et perfome MySQL bædre kan du kobinere disse 2 statement sådan du kun skal lave et kald til MySQL du kan se følge statements her.

ALTER TABLE kontakt_personer ADD PRIMARY KEY( Id ), AD INDEX ( LastName , FirstName );

Syntaxen for CRREATE INDEX er følgene hvor en statements oprettes enkle rækker

CREATE UNIQUE INDEX IdIndex ON kontakt_personer ( Id );
CREATE INDEX NameIndex ON kontakt_personer ( LastName , FirstName );

Ved brug af CREATE INDEX er det nød vendigt at skrive et navn hvor imod hvis du benytter ALTER TABLE udfylder MySQL indexet med et navn.

CREATE INDEX kan kun oprette en række pr statement og ikke flere af gangen lige som ALTER TABLE kan gøre, derfor er ALTER TABLE mere flexible at benytte.