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

MySQL:Bagaimana cara mengubah kolom varchar(255) UNIQUE menjadi UNIQUE Text NOT NULL?

Apakah Anda akan menggunakan kolom TEXT sebagai bagian dari UNIQUE KEY? Ini SANGAT tidak efisien! Jangan lakukan itu! Saya sangat menyarankan Anda untuk:

  • Tambahkan kolom tambahan bernama misalnya 'description_hash' char(32) not null default ''
  • Simpan nilai hash untuk description lapangan ke dalamnya. Untuk mantan description_hash=MD5(description)
  • Ubah kunci Anda menjadi UNIQUE KEY (name, description_hash)

Tentu saja Anda harus menyimpan description_hash kolom terbaru dalam kode Anda, tetapi seperti yang terlihat - dalam kebanyakan kasus ini hanya memerlukan sedikit perubahan kode. Atau Anda dapat menggunakan pemicu untuk menangani ini.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. memesan dengan mengambil terlalu banyak waktu di mysql

  2. Halaman Login Visual Basic menyebabkan kesalahan (Kesalahan BC30506 Menangani klausa memerlukan WithEvents....)

  3. Kirim email dari pemicu MySQL saat tabel diperbarui

  4. Tentukan apakah pernyataan sql dimulai dengan kata SELECT

  5. Format datetime tidak valid:1292 Nilai datetime salah - Laravel 5.2