sql >> Database >  >> RDS >> Mysql

MySQL / MariaDB unieke BLOB van vaste lengte

U kunt een UNIEKE index maken op een BLOB-kolom, u hoeft alleen een maximale lengte voor de index op te geven (wat ook betekent dat deze slechts tot dat aantal tekens uniek zal zijn).

Overweeg echter om in plaats daarvan VARBINARY te gebruiken, waarmee u de lengte kunt bepalen en u geen langer veld kunt invoegen dat per ongeluk de unieke beperking kan doorbreken. Zie https://dev.mysql.com/doc/ refman/5.6/en/binary-varbinary.html

Voorbeeld, getest op 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. hoe kunnen we de waarde van VARRAY van IN Parameter in procedure krijgen?

  2. Webservices gebruiken van Oracle PL/SQL

  3. Hoe krijg ik de id na INSERT in MySQL-database met Python?

  4. Datumkolom opmaken in javaFX TableView voor gegevens opgehaald uit Oracle DB