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

Unikalny BLOB MySQL / MariaDB o stałej długości

Możesz utworzyć indeks UNIQUE dla kolumny BLOB, wystarczy określić maksymalną długość indeksu (co również oznacza, że ​​będzie on unikalny tylko do tylu znaków).

Rozważ jednak użycie zamiast tego VARBINARY, które pozwala ustalić długość i oznacza, że ​​nie można wstawić dłuższego pola, które może przypadkowo złamać ograniczenie unikatowości. Zobacz https://dev.mysql.com/doc/ refman/5.6/pl/binary-varbinary.html

Przykład, testowany 5.6.23:

mysql [localhost] {msandbox} (test) > create table t1 (a BLOB(16), UNIQUE INDEX `a`(`a`(16)));
Query OK, 0 rows affected (0.01 sec)

mysql [localhost] {msandbox} (test) > insert into t1 values('aaa');
Query OK, 1 row affected (0.01 sec)

mysql [localhost] {msandbox} (test) > insert into t1 values('aaa');
ERROR 1062 (23000): Duplicate entry 'aaa' for key 'a'
mysql [localhost] {msandbox} (test) > 

mysql [localhost] {msandbox} (test) > create table t2(a VARBINARY(16), UNIQUE INDEX `a`(`a`));
Query OK, 0 rows affected (0.02 sec)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Stosunek do wielu i obejść się bez tego

  2. #1146 – Tabela XXXX nie istnieje

  3. Usuń ostatni przecinek lub uniemożliwić jego drukowanie we wszystkich MySQL/PHP

  4. Nie można zalogować się do mysql 5.7.9 po zmianie hasła

  5. jak połączyć się z serwerem mysql za pomocą wiersza poleceń:błąd