sql >> Databáze >  >> RDS >> Mysql

Jak vytvořit 'dvoustranný' jedinečný index na dvou polích?

Co takhle kontrolovat, co jde do tabulky tak, abyste vždy ukládali nejmenší číslo do prvního sloupce a největší do druhého? Samozřejmě, pokud to ‚znamená‘ totéž. Pravděpodobně je levnější to udělat, než se to vůbec dostane do databáze.

Pokud to není možné, můžete pole uložit tak, jak jsou, ale nechat je duplikovat v číselném pořadí do dvou JINÝCH polí, na kterých byste vytvořili primární klíč (pseudokód-ish):

COLUMN A : 2
COLUMN B : 1

COLUMN A_PK : 1  ( if new.a < new.b then new.a else new.b )
COLUMN B_PK : 2  ( if new.b > new.a then new.b else new.a )

To by se dalo snadno provést pomocí spouště (jako v Ronaldově odpovědi) nebo se to dalo zvládnout výše v aplikaci.



  1. Příkazy SQL

  2. Funkce MySQL CEILING() – zaokrouhlení nahoru na nejbližší celé číslo

  3. Jak importovat soubor CSV v PostgreSQL

  4. MySQL spojuje mnoho k mnoha do jednoho řádku