sql >> Base de Datos >  >> RDS >> Mysql

La mejor manera de mantener el campo TEXTO único en la base de datos MySQL

Como me preguntaron en los comentarios cómo resolvería esto, lo escribiré como respuesta.

Estar en tal situación sugiere errores en el diseño de la aplicación. Considere lo que eso significa.

Tiene un texto del que no puede especificar la longitud por adelantado, y que puede ser extremadamente largo (hasta 64k), del cual desea mantener la singularidad. Imagine tal cantidad de datos divididos en claves separadas y componiendo un índice compuesto para generar unicidad. Esto es lo que estás tratando de hacer. Para números enteros, sería un índice de 16000 enteros, unidos en un índice compuesto.

Considere además que los campos de tipo CHARACTER (CHAR, VARCHAR, TEXT) subyacen a la interpretación mediante codificación, lo que complica aún más el problema.

Recomiendo encarecidamente dividir los datos de alguna manera. Esto no solo libera al DBMS de incorporar bloques de caracteres de longitud variable, sino que también podría brindar alguna posibilidad de generar claves compuestas sobre partes de los datos. Tal vez incluso pueda encontrar una mejor solución de almacenamiento para sus datos.

Si tiene preguntas, le sugiero que publique la tabla o la estructura de la base de datos y explique qué datos lógicos contiene el campo TEXTO y por qué cree que debería ser único.