Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL:Wie ändert man die UNIQUE-Spalte varchar(255) in UNIQUE Text NOT NULL?

Werden Sie die TEXT-Spalte als Teil von UNIQUE KEY verwenden? Das ist SEHR ineffizient! Tun Sie das nicht! Ich empfehle Ihnen dringend:

  • Fügen Sie eine zusätzliche Spalte mit dem Namen hinzu, zum Beispiel 'description_hash' char(32) not null default ''
  • Hash-Wert für description speichern Feld hinein. Zum Bsp. description_hash=MD5(description)
  • Ändern Sie Ihren Schlüssel zu UNIQUE KEY (name, description_hash)

Natürlich müssen Sie den description_hash beibehalten Spalte in Ihrem Code auf dem neuesten Stand, aber wie Sie sehen - in den meisten Fällen sind nur wenige Codeänderungen erforderlich. Oder Sie können Trigger verwenden, um dies zu handhaben.