Spec-Zone .ru
спецификации, руководства, описания, API

10.1.3.7. Примеры Присвоения Набора символов и Сопоставления

Следующие примеры показывают, как MySQL определяет набор символов значения по умолчанию и значения сопоставления.

Пример 1: Таблица и Определение Столбца

CREATE TABLE t1(    c1 CHAR(10) CHARACTER SET latin1 COLLATE latin1_german1_ci) DEFAULT CHARACTER SET latin2 COLLATE latin2_bin;

Здесь у нас есть столбец с a latin1 набор символов и a latin1_german1_ci сопоставление. Определение является явным, так, чтобы было прямым. Заметьте, что нет никакой проблемы с хранением a latin1 столбец в a latin2 таблица.

Пример 2: Таблица и Определение Столбца

CREATE TABLE t1(    c1 CHAR(10) CHARACTER SET latin1) DEFAULT CHARACTER SET latin1 COLLATE latin1_danish_ci;

На сей раз у нас есть столбец с a latin1 набор символов и сопоставление значения по умолчанию. Хотя это могло бы казаться естественным, сопоставление значения по умолчанию не берется от табличного уровня. Вместо этого потому что сопоставление значения по умолчанию для latin1всегда latin1_swedish_ci, столбец c1 имеет сопоставление latin1_swedish_ci (нет latin1_danish_ci).

Пример 3: Таблица и Определение Столбца

CREATE TABLE t1(    c1 CHAR(10)) DEFAULT CHARACTER SET latin1 COLLATE latin1_danish_ci;

У нас есть столбец с набором символов значения по умолчанию и сопоставлением значения по умолчанию. При этом обстоятельстве MySQL проверяет табличный уровень, чтобы определить набор символов столбца и сопоставление. Следовательно, набор символов для столбца c1 latin1 и его сопоставление latin1_danish_ci.

Пример 4: База данных, Таблица, и Определение Столбца

CREATE DATABASE d1    DEFAULT CHARACTER SET latin2 COLLATE latin2_czech_ci;USE d1;CREATE TABLE t1(    c1 CHAR(10));

Мы создаем столбец, не определяя его набор символов и сопоставление. Мы также не определяем набор символов и сопоставление на табличном уровне. При этом обстоятельстве MySQL проверяет уровень базы данных, чтобы определить табличные настройки, которые после того становятся настройками столбца.) Следовательно, набор символов для столбца c1 latin2 и его сопоставление latin2_czech_ci.