Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да създадете „двустранен“ уникален индекс на две полета?

Какво ще кажете за контролиране на това, което влиза в таблицата, така че винаги да съхранявате най-малкото число в първата колона и най-голямото във втората? Стига, разбира се, „означава“ едно и също нещо. Вероятно е по-евтино да го направите, преди дори да стигне до базата данни.

Ако това е невъзможно, можете да запазите полетата както са, но да ги дублирате в числов ред в две ДРУГИ полета, върху които ще създадете първичен ключ (псевдокод-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 )

Това може лесно да се направи със спусък (както в отговора на Роналд) или да се обработва по-горе, в приложението.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Java get ResultSet от SQL Array е неуспешен

  2. Форматиране на времева марка

  3. Как да променя типа данни на колоната на таблицата върху повече от 1 колона?

  4. Не мога да се свържа с отдалечена база данни с помощта на php

  5. Как да обновите конфигурационния файл на MySQL, без да рестартирате?