2017-02-15 5 views
0
USE raimohuybrechts; 
CREATE TABLE UnitBase 
(
    Id INT NOT NULL UNIQUE AUTO_INCREMENT PRIMARY KEY, 
    Name VARCHAR(255) NOT NULL UNIQUE CHARACTER SET utf8, 
    Description VARCHAR(1024) CHARACTER SET utf8, 
    ShippingCostMultiplier FLOAT, 
    Code VARCHAR(2) NOT NULL UNIQUE 
); 

Ошибка:Набор символов utf8 дает синтаксическую ошибку

линия 4: # 1064 - У Вас есть ошибка в вашем SQL синтаксиса; проверить руководство, которое соответствует Вашей версии сервера MySQL для правого синтаксиса использовать вблизи 'CHARACTER SET utf8, Описание VARCHAR (1024) CHARACTER SET utf8, Ship' в строке 4

не может реально цифра что не так, поскольку я использую тот же синтаксис в строке 3, и там не возникает ошибка.

+0

https://dev.mysql.com/doc/refman/5.7/en/charset-table.html Charset в конце – Mihai

ответ

0

Вы можете установить набор символов на уровне таблицы.

Но если вам нужно установить его на уровне столбца, столбец уровня CHARACTER SET спецификация является частью data_type, поэтому она должна прийти раньше других модификаторов, таких как NOT NULL, UNIQUE и т.д.

Этом должно работать:

CREATE TABLE UnitBase 
(
    Id INT NOT NULL UNIQUE AUTO_INCREMENT PRIMARY KEY, 
    Name VARCHAR(255) CHARACTER SET utf8 NOT NULL UNIQUE, 
    Description VARCHAR(1024) CHARACTER SET utf8, 
    ShippingCostMultiplier FLOAT, 
    Code VARCHAR(2) NOT NULL UNIQUE 
); 
+0

Большое спасибо за разъяснение, Айк! Он работает сейчас. – Raimo

-1

Вы не можете установить символ UTF8 в поле/столбец.

Правильная строка:

CREATE TABLE UnitBase 
(
    Id INT NOT NULL UNIQUE AUTO_INCREMENT PRIMARY KEY, 
    Name VARCHAR(255) NOT NULL, 
    Description VARCHAR(1024), 
    ShippingCostMultiplier FLOAT, 
    Code VARCHAR(2) NOT NULL UNIQUE 
) ENGINE=InnoDB CHARACTER SET=utf8; 
+0

Я уверен, что вы не можете, если документы врут: [https://dev.mysql.com/doc/refman/5.7/en/charset-column.html](https://dev.mysql.com/doc/refman/5.7/en/charset-column.html) – Raimo

+0

Да, вы можете установить набор символов на уровне столбца. –

Смежные вопросы