MySQL设置行字符集

时间:2017-04-24 08:50:03

标签: mysql character-encoding

我想将我的行字符集设置为UTF8 general或unicode(无论我想要什么;-))

拥有以下MySQL代码:

ALTER TABLE `pdo_test` CHANGE `pdo_text` CHARACTER SET utf8 COLLATE utf8_general_ci;

然而这是错误的。

以下是正确的:

ALTER TABLE `pdo_test` CHANGE `pdo_text` `pdo_text` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL; 

然而,我需要知道许多其他子信息。像字段类型(VARCHAR(255),NULL等)

难道不能像我想要的那样简短吗?

ALTER TABLE `pdo_test` CHANGE `pdo_text` CHARACTER SET utf8 COLLATE `utf8_general_ci;`

1 个答案:

答案 0 :(得分:0)

ALTER TABLE CHANGE有一个 column_definition 子句 它指的是CREATE TABLE column_definition

column_definition:
    data_type [NOT NULL | NULL] [DEFAULT default_value]
      [AUTO_INCREMENT] [UNIQUE [KEY] | [PRIMARY] KEY]
      [COMMENT 'string']
      [COLUMN_FORMAT {FIXED|DYNAMIC|DEFAULT}]
      [STORAGE {DISK|MEMORY|DEFAULT}]
      [reference_definition]
  | data_type [GENERATED ALWAYS] AS (expression)
      [VIRTUAL | STORED] [UNIQUE [KEY]] [COMMENT comment]
      [NOT NULL | NULL] [[PRIMARY] KEY]

由此我们可以说 data_type 是必需参数。查询必须如下:

ALTER TABLE `pdo_test` CHANGE `pdo_text` `pdo_text` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci...

CREATE TABLE Syntax.