Saltar al contenido principal
Una cadena de longitud fija de N bytes (no caracteres ni puntos de código). Para declarar una columna de tipo FixedString, use la siguiente sintaxis:
Donde N es un número natural. El tipo FixedString es eficiente cuando los datos tienen una longitud de exactamente N bytes. En cualquier otro caso, es probable que reduzca la eficiencia. Ejemplos de valores que pueden almacenarse de forma eficiente en columnas de tipo FixedString:
  • La representación binaria de direcciones IP (FixedString(16) para IPv6).
  • Códigos de idioma (ru_RU, en_US … ).
  • Códigos de divisa (USD, RUB … ).
  • Representación binaria de hashes (FixedString(16) para MD5, FixedString(32) para SHA256).
Para almacenar valores UUID, use el tipo de dato UUID. Al insertar datos, ClickHouse:
  • Rellena una cadena con bytes nulos si la cadena contiene menos de N bytes.
  • Lanza la excepción Too large value for FixedString(N) si la cadena contiene más de N bytes.
Consideremos la siguiente tabla con una única columna FixedString(2):
Tenga en cuenta que la longitud del valor FixedString(N) es constante. La función length devuelve N incluso si el valor FixedString(N) está rellenado únicamente con bytes nulos, pero la función empty devuelve 1 en este caso. Al seleccionar datos con la cláusula WHERE, el resultado varía según cómo se especifique la condición:
  • Si se usa el operador de igualdad = o ==, o la función equals, ClickHouse no tiene en cuenta el carácter \0; es decir, las consultas SELECT * FROM FixedStringTable WHERE name = 'a'; y SELECT * FROM FixedStringTable WHERE name = 'a\0'; devuelven el mismo resultado.
  • Si se usa la cláusula LIKE, ClickHouse tiene en cuenta el carácter \0, por lo que puede ser necesario especificar explícitamente el carácter \0 en la condición de filtro.
Última modificación el 2 de julio de 2026