Подтвердить что ты не робот

Эквивалентные типы данных mysql

Я исхожу из фона SQL Server. Какими будут эквивалентные типы данных для MySQL:

NVARCHAR - обеспечивает поддержку международных многобайтовых символов для всех языков

NVARCHAR(max) - позволяет очень длинные текстовые документы

4b9b3361

Ответ 1

Переход на http://msdn.microsoft.com/en-us/library/ms186939.aspx, я бы сказал, что

VARCHAR(n) CHARSET ucs2

- ближайший эквивалент. Но я не вижу, чтобы многие люди использовали это, чаще всего люди используют:

VARCHAR(n) CHARSET utf8

Насколько мне известно, оба набора символов utf8 и ucs2 допускают одни и те же символы, только кодировка отличается. Таким образом, любой из них должен работать, и я, вероятно, поеду за последним, поскольку он используется чаще.

В MySQL unicode есть некоторые ограничения, которые могут или не могут применяться к вашему прецеденту. Для получения дополнительной информации о поддержке Unicode MySQL обратитесь к http://dev.mysql.com/doc/refman/5.0/en/charset-unicode.html.

Ответ 2

эквивалент равен VARCHAR или TEXT

MySql поддерживает nchar и nvarchar, но по-другому. Это реализовано с использованием набора символов и сопоставления (который представляет собой набор правил, используемых для сравнения строк с использованием набора символов, например, должно ли сравнение быть чувствительным к регистру или нет).

MySql определяет набор символов на уровне 4:


сервера
базы данных Таблица
Столбец

набор символов наследуется от непосредственного верхнего уровня, если вы его не укажете. Что вам нужно сделать, так это убедиться, что столбец, который вы хотите создать типа nvarchar, имеет "набор символов", установленный для любого набора символов Юникода (utf8 - лучший выбор, который я считаю) либо явно, либо путем наследования.

Для уровня столбца вы можете установить "набор символов" следующим образом:

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

В приведенном выше примере _id сможет принимать 10 символов Юникода, а _name сможет принимать 100 символов Юникода (каждый символ Юникода будет оцениваться двумя символами ascii)

Пожалуйста, перейдите по ссылке MySql для дальнейшего объяснения.