Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak stworzyć „dwustronny” unikalny indeks na dwóch polach?

Co powiesz na kontrolowanie tego, co trafia do tabeli, tak aby zawsze przechowywać najmniejszą liczbę w pierwszej kolumnie, a największą w drugiej? O ile to oczywiście „znaczy” to samo. Prawdopodobnie tańsze jest zrobienie tego, zanim dostanie się do bazy danych.

Jeśli jest to niemożliwe, możesz zapisać pola tak, jak są, ale powielić je w kolejności numerycznej na dwa INNE pola, na których utworzysz klucz podstawowy (pseudo kodowy):

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 )

Można to łatwo zrobić za pomocą wyzwalacza (jak w odpowiedzi Ronalda) lub obsługiwać wyżej w aplikacji.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Polecenie wstawiania MySQL a składnia zapytań T-SQL z przykładami

  2. Jak połączyć się ze zdalną bazą danych MySQL przez SSL za pomocą Play Framework?

  3. Jak przekazać wartości oddzielone przecinkami do procedury składowanej w MySql?

  4. Jak obliczyć procentowy wzrost miesiąc po miesiącu w MySQL?

  5. Jak dodać sortowanie do zapytania laravel