sql >> Databasteknik >  >> RDS >> Mysql

Kan jag ha en primärnyckel utan klustrade index? Kan jag också ha flervärdigt klustrade index?

(Detta svar är endast för SQL Server 2005+. Jag kan ingenting om MySQL.)

Ja. Som du nämnde stöds en primärnyckelbegränsning som standard av ett klustrat index. Du kan säga åt SQL Server att backa begränsningen med ett icke-klustrat index genom att deklarera begränsningen enligt följande:

ALTER TABLE MyTable
    ADD CONSTRAINT PK_MyTable
        PRIMARY KEY NONCLUSTERED(Col1);

Ja, du kan definiera ett index med mer än en kolumn i indexnyckeln. Det är egentligen inte annorlunda än ett icke-klustrat index.

CREATE UNIQUE CLUSTERED INDEX IX_MyTable_Clus
    ON MyTable(Col1, Col2, Col3);

Referenser:ALTER TABLE , CREATE INDEX



  1. refererar främmande nyckel alltid till en unik nyckel i en annan tabell?

  2. MariaDB LTRIM() vs LTRIM_ORACLE():Vad är skillnaden?

  3. hur man får det totala antalet rader med mysqli

  4. Är kapslade transaktioner tillåtna i MySQL?