sql >> Databáze >  >> RDS >> Mysql

Nejlepší způsob, jak udržet pole TEXT jedinečné v databázi MySQL

Jak jsem byl v komentářích dotázán, jak bych to řešil, napíšu to jako odpověď.

Být v takové situaci naznačuje chyby v návrhu aplikace. Zvažte, co to znamená.

Máte text, jehož délku nemůžete předem určit a který může být extrémně dlouhý (až 64 k), jehož jedinečnost chcete zachovat. Představte si takové množství dat rozdělených do samostatných klíčů a sestavení složeného indexu, který vytvoří jedinečnost. O tohle se snažíš. Pro celá čísla by to byl index 16 000 celých čísel spojených do složeného indexu.

Dále zvažte, že pole typu CHARACTER (CHAR, VARCHAR, TEXT) jsou základem interpretace pomocí kódování, což problém dále komplikuje.

Vřele doporučuji data nějak rozdělit. To nejen osvobozuje DBMS od začleňování bloků znaků s proměnnou délkou, ale také může poskytnout určitou možnost generování složených klíčů přes části dat. Možná byste dokonce mohli najít lepší řešení úložiště pro svá data.

Máte-li dotazy, navrhuji zveřejnit strukturu tabulky a/nebo databáze a vysvětlit, jaká logická data pole TEXT obsahuje a proč si myslíte, že by mělo být jedinečné.



  1. Jak zobrazit komentáře sloupce s operací desc

  2. Oracle SQL PIVOT Table

  3. SQLSTATE[23000]:Porušení omezení integrity:1048 Sloupec 'příspěvek' nemůže mít hodnotu null

  4. Může být výchozí primární klíč NULL? Proč je to tak popisováno?