2010-02-06 41 views
20

Vengo de un fondo de SQL Server. ¿Cuáles serían los tipos de datos equivalentes será para el siguiente en MySQL:tipos de datos equivalentes de mysql

NVARCHAR - proporciona soporte para, caracteres internacionales de varios bytes para todos los idiomas

NVARCHAR(max) - permite que los documentos de texto muy largas

+1

por lo que leí, nvarchar (n) puede almacenar 1 a 4000 caracteres - no es mi definición de "documentos de texto muy largo". ¿Seguro que lo dijiste? –

+0

NVARCHAR (MAX) es para cosas largas. No VARCHAR (n). –

Respuesta

12

A juzgar por http://msdn.microsoft.com/en-us/library/ms186939.aspx, yo diría que

VARCHAR(n) CHARSET ucs2 

es el equivalente más cercano. Pero no veo muchas personas que utilizan este, más a menudo la gente usa:

VARCHAR(n) CHARSET utf8 

Por lo que yo sé, los dos conjuntos de caracteres UTF-8 y ucs2 permiten el mismo personajes, sólo la codificación es diferente. Entonces, cualquiera de los dos debe funcionar, y probablemente apunte a este último ya que se usa con más frecuencia.

Existen algunas limitaciones en el soporte de Unicode de MySQL que pueden aplicarse o no a su caso de uso. Consulte http://dev.mysql.com/doc/refman/5.0/en/charset-unicode.html para obtener más información sobre el soporte de Unicode de MySQL.

12

el equivalente es VARCHAR o TEXT

MySql admite nchar y nvarchar pero de una manera diferente. Esto se implementa mediante el conjunto de caracteres y la intercalación (que es un conjunto de reglas usadas para la comparación de cadenas usando el conjunto de caracteres, como si la comparación debe ser sensible a mayúsculas o minúsculas).

MySql define el juego de caracteres en el nivel 4:

servidor de base de datos

Tabla
Columna

conjunto de caracteres se hereda del nivel superior inmediato si no se especifica uno. Lo que debe hacer es asegurarse de que la columna que desea hacer de tipo nvarchar tenga "conjunto de caracteres" establecido en cualquier conjunto de caracteres Unicode (utf8 es la mejor opción, creo), ya sea explícitamente o por herencia.

Para el nivel de la columna se puede establecer "conjunto de caracteres" de la siguiente manera:

create table nvarchar_test 
(
_id varchar(10) character set utf8, 
_name varchar(200) character set ascii 
) 

En el ejemplo anterior _id será capaz de tomar 10 caracteres Unicode y _name será capaz de tomar 100 caracteres Unicode (cada Unicode carácter evaluará a dos caracteres ascii)

Consulte la referencia de MySql para obtener más información.

Cuestiones relacionadas