MySQL эквивалентные типы данных - PullRequest
23 голосов
/ 07 февраля 2010

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

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

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

Ответы [ 3 ]

13 голосов
/ 07 февраля 2010

По http://msdn.microsoft.com/en-us/library/ms186939.aspx, Я бы сказал, что

VARCHAR(n) CHARSET ucs2

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

VARCHAR(n) CHARSET utf8

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

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

13 голосов
/ 07 февраля 2010

эквивалент 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 символов Unicode, а _name сможет принимать 100 символов Unicode (каждый символ Unicode оценивается в два символа ASCII)

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

6 голосов
/ 18 декабря 2012

В MySQL 5 поддерживается NVARCHAR (сокращение от National Varchar) и использует utf8 в качестве предопределенного набора символов.

http://dev.mysql.com/doc/refman/5.0/en/charset-national.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...