Spec-Zone .ru
спецификации, руководства, описания, API
|
Следующие примеры показывают, как 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
.