文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (美國信紙尺寸) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  ...  /  字元集和校對規則指派的範例

12.3.9 字元集和校對規則指派的範例

以下範例顯示 MySQL 如何決定預設字元集和校對規則值。

範例 1:資料表和欄位定義

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

這裡我們有一個欄位,其字元集為 latin1,校對規則為 latin1_german1_ci。定義是明確的,所以很簡單。請注意,在 latin2 資料表中儲存 latin1 欄位沒有問題。

範例 2:資料表和欄位定義

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

這次我們有一個欄位,其字元集為 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_cs;
USE d1;
CREATE TABLE t1
(
    c1 CHAR(10)
);

我們建立一個欄位,但未指定其字元集和校對規則。我們也未在資料表層級指定字元集和校對規則。在這種情況下,MySQL 會檢查資料庫層級,以決定資料表設定,然後該設定會成為欄位設定。因此,欄位 c1 的字元集為 latin2,其校對規則為 latin2_czech_cs