Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL / MariaDB BLOB unik dengan panjang tetap

Anda dapat membuat indeks UNIK pada kolom BLOB, Anda hanya perlu menentukan panjang maksimum untuk indeks (yang juga berarti, itu hanya akan unik hingga banyak karakter).

Pertimbangkan, bagaimanapun, menggunakan VARBINARY sebagai gantinya yang memungkinkan Anda untuk memperbaiki panjangnya dan berarti Anda tidak dapat memasukkan bidang yang lebih panjang yang mungkin secara tidak sengaja melanggar batasan unik. Lihat https://dev.mysql.com/doc/ refman/5.6/en/binary-varbinary.html

Contoh, diuji pada 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. Kelompokkan menurut id yang memiliki max(date_field)

  2. parameter other_user_id tidak berfungsi pada waktu eksekusi, saya tidak tahu mengapa

  3. Hapus MySQL dengan kueri pemilihan bersarang

  4. Apa yang salah dengan kode AS3 ini untuk berkomunikasi dengan file PHP?

  5. Bagaimana saya melakukan hitungan MySQL (*) di Doctrine2?