sql >> Database >  >> RDS >> Mysql

MySQL:Hoe verander ik de varchar(255) UNIQUE kolom in UNIQUE Text NOT NULL?

Ga je de TEXT-kolom gebruiken als onderdeel van UNIQUE KEY? Het is ZEER inefficiënt! Doe dat niet! Ik raad je ten zeerste aan om:

  • Voeg een extra kolom toe met de naam bijvoorbeeld 'description_hash' char(32) not null default ''
  • Bewaar de hash-waarde voor description veld erin. Voor bijv. description_hash=MD5(description)
  • Wijzig uw sleutel in UNIQUE KEY (name, description_hash)

Natuurlijk moet je de description_hash . behouden kolom up-to-date in uw code, maar zoals u ziet, zijn er in de meeste gevallen slechts enkele codewijzigingen nodig. Of u kunt trigger gebruiken om dit af te handelen.



  1. Hoe te voorkomen dat PostgreSQL mijn mooi opgemaakte SQL-definities wijzigt

  2. PostgreSQL-equivalent voor TOP n WITH TIES:LIMIT with ties?

  3. Hoe PostgreSQL-query's loggen?

  4. Beperkingen van SQL Server Express