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

Я происхожу из среды SQL Server. Что было бы эквивалентные типы данных быть для следующего в MySQL:

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

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

23
задан Chris Bornhoft 30 July 2014 в 14:33
поделиться

2 ответа

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

VARCHAR(n) CHARSET ucs2

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

VARCHAR(n) CHARSET utf8

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

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

14
ответ дан 29 November 2019 в 02:27
поделиться

эквивалент VARCHAR или ТЕКСТ

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

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

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

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

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

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

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

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

13
ответ дан 29 November 2019 в 02:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: