The following examples show how MySQL determines default character set and collation values.
Example 1: Table and Column Definition
CREATE TABLE t1
(
    c1 CHAR(10) CHARACTER SET latin1 COLLATE latin1_german1_ci
) DEFAULT CHARACTER SET latin2 COLLATE latin2_bin;
          Here we have a column with a latin1
          character set and a latin1_german1_ci
          collation. The definition is explicit, so that is
          straightforward. Notice that there is no problem with storing
          a latin1 column in a
          latin2 table.
        
Example 2: Table and Column Definition
CREATE TABLE t1
(
    c1 CHAR(10) CHARACTER SET latin1
) DEFAULT CHARACTER SET latin1 COLLATE latin1_danish_ci;
          This time we have a column with a latin1
          character set and a default collation. Although it might seem
          natural, the default collation is not taken from the table
          level. Instead, because the default collation for
          latin1 is always
          latin1_swedish_ci, column
          c1 has a collation of
          latin1_swedish_ci (not
          latin1_danish_ci).
        
Example 3: Table and Column Definition
CREATE TABLE t1
(
    c1 CHAR(10)
) DEFAULT CHARACTER SET latin1 COLLATE latin1_danish_ci;
          We have a column with a default character set and a default
          collation. In this circumstance, MySQL checks the table level
          to determine the column character set and collation.
          Consequently, the character set for column
          c1 is latin1 and its
          collation is latin1_danish_ci.
        
Example 4: Database, Table, and Column Definition
CREATE DATABASE d1
    DEFAULT CHARACTER SET latin2 COLLATE latin2_czech_ci;
USE d1;
CREATE TABLE t1
(
    c1 CHAR(10)
);
          We create a column without specifying its character set and
          collation. We're also not specifying a character set and a
          collation at the table level. In this circumstance, MySQL
          checks the database level to determine the table settings,
          which thereafter become the column settings.) Consequently,
          the character set for column c1 is
          latin2 and its collation is
          latin2_czech_ci.
        

User Comments
Add your own comment.