Jens Gyldenkærne Clausen wrote:
> Hej gruppe. MySQL har nogle meget praktiske muligheder for
> eksistenstjek i DDL-sætninger - altså mulighed for at lade
> databasen oprette et objekt hvis det ikke findes i forvejen, eller
> omvendt slette det såfremt det eksisterer (CREATE TABLE IF NOT
> EXISTS tabelnavn, DROP TABLE IF EXISTS tabelnavn).
>
> Det virker desværre bare ikke med INDEX. Jeg ville gerne kunne
> skrive:
>
> DROP INDEX IF EXISTS idxnavn (ON tblnavn)
>
> eller
>
> CREATE INDEX IF NOT EXISTS idxnavn ...
>
> - men det er ikke muligt.
>
> Er der en alternativ måde man i et script kan oprette et index hvis
> det ikke eksisterer i forvejen (eller droppe det hvis det
> eksisterer)?
>
> Det er version 4.1.14 det drejer sig om.
>
> Jeg bruger det til nogle opgaveløsninger hvor det er rart at kunne
> køre hele filen igennem uden at tænke på om det er første eller
> andet gennemløb.
Nu har jeg ikke læst det igennem, men hvad mon du siger til
<
http://dev.mysql.com/doc/refman/5.0/en/handler.html> ?
HANDLER tbl_name OPEN [ AS alias ]
HANDLER tbl_name READ index_name { = | >= | <= | < } (value1,value2,...)
[ WHERE where_condition ] [LIMIT ... ]
HANDLER tbl_name READ index_name { FIRST | NEXT | PREV | LAST }
[ WHERE where_condition ] [LIMIT ... ]
HANDLER tbl_name READ { FIRST | NEXT }
[ WHERE where_condition ] [LIMIT ... ]
HANDLER tbl_name CLOSE
eller
<
http://dev.mysql.com/doc/refman/5.0/en/show-index.html>
SHOW INDEX FROM tbl_name [FROM db_name]