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

Съставни ключове на MySql и нулеви стойности

http://dev.mysql.com/doc/refman /5.0/bg/create-index.html

"УНИКАЛЕН индекс създава ограничение, така че всички стойности в индекса трябва да се различават. Възниква грешка, ако се опитате да добавите нов ред с ключова стойност, която съответства на съществуващ ред. Това ограничение не се прилага за NULL стойности, освен за Машина за съхранение на BDB. За други машини, УНИКАЛЕН индекс позволява множество NULL стойности за колони, които могат да съдържат NULL."

Така че, не, не можете да накарате MySQL да третира NULL като уникална стойност. Предполагам, че имате няколко възможности:можете да направите това, което предложихте във вашия въпрос и да съхраните "специална стойност" вместо null, или можете да използвате BDB двигателя за таблицата. Не мисля обаче, че тази малка разлика в поведението налага да направите необичаен избор на машина за съхранение.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL PI() функция – Връщане на стойността на π (pi)

  2. MYSQL INSERT или UPDATE IF

  3. Как да сравните низове за един интервал

  4. MYSQL съхранена процедура, случай

  5. Настройки на множество центрове за данни с помощта на Galera Cluster за MySQL или MariaDB