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

MySQL / MariaDB уникален BLOB с фиксирана дължина

Можете да създадете УНИКАЛЕН индекс на BLOB колона, просто трябва да посочите максимална дължина за индекса (което също означава, че той ще бъде уникален само до толкова знака).

Обмислете обаче използването на VARBINARY вместо това, което ви позволява да фиксирате дължината и означава, че не можете да вмъкнете по-дълго поле, което може случайно да наруши уникалното ограничение. Вижте https://dev.mysql.com/doc/ refman/5.6/en/binary-varbinary.html

Пример, тестван на 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. Екраниране на имена на колони в PDO изрази

  2. Как да направите пълно външно присъединяване в MySQL

  3. Как да конвертирам тази заявка за достъп в mySQL заявка

  4. Mysql - попълване на редове за липсващи месеци

  5. Библиотеката не е заредена:@rpath/libmysqlclient.21.dylib Причина:изображението не е намерено Грешка при мигриране на Django с помощта на драйвер за mysqlclient DB и MySQL 8 с macOS