sql >> Databáze >  >> RDS >> Mysql

MySQL / MariaDB jedinečný BLOB pevné délky

Můžete vytvořit UNIQUE index na sloupci BLOB, stačí zadat maximální délku indexu (což také znamená, že bude jedinečný pouze do tolika znaků).

Zvažte však použití VARBINARY, které vám umožní opravit délku a znamená, že nemůžete vložit delší pole, které by mohlo náhodně narušit jedinečné omezení. Viz https://dev.mysql.com/doc/ refman/5.6/en/binary-varbinary.html

Příklad, testováno 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. Předávání operátorů SQL dotazu prostřednictvím parametru iReport

  2. poškození injekcí mysql?

  3. Použití spouštěče v Oracle k protokolování změn do tabulky

  4. Naformátujte výsledek dotazu mysql do požadovaného formátu