Я получаю следующую ошибку с этим sql

У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы найти правильный синтаксис рядом с '), messageRead VARCHAR (3), messageReadDateTime DATETIME (), messageReplied VARCHA' в строке 8

И не могу понять, почему это не удается

$sql = "CREATE TABLE messages (
messageID INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
yearID VARCHAR(6),
fromLevel VARCHAR(255),
fromID VARCHAR(11),
toLevel VARCHAR(255),
toID VARCHAR(11),
sentDateTime DATETIME(),
messageRead VARCHAR(3),
messageReadDateTime DATETIME(),
messageReplied VARCHAR(3),
messageRepliedDateTime DATETIME(),
submitDate TIMESTAMP
)";

Любые идеи?

0
CarlRyds 14 Апр 2016 в 01:58

3 ответа

Лучший ответ

Удалите скобки после DATETIME. Это неверный синтаксис.

messageReadDateTime DATETIME(),
                            ^^

Должно быть просто

messageReadDateTime DATETIME  ,

Похоже, есть несколько случаев.

Для устранения подобной проблемы может быть полезно сократить определение таблицы до одного столбца и посмотреть, работает ли это. Затем опустите таблицу и попробуйте снова с двумя столбцами, наращивая, пока не найдете проблему.

Или просто задайте вопрос на StackOverflow. Какой бы ни.

3
spencer7593 13 Апр 2016 в 23:00

Удалите () после типа данных DATETIME

CREATE TABLE messages 
(
    messageID INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
    yearID VARCHAR(6),
    fromLevel VARCHAR(255),
    fromID VARCHAR(11),
    toLevel VARCHAR(255),
    toID VARCHAR(11),
    sentDateTime DATETIME,
    messageRead VARCHAR(3),
    messageReadDateTime DATETIME,
    messageReplied VARCHAR(3),
    messageRepliedDateTime DATETIME,
    submitDate TIMESTAMP
)
1
juergen d 13 Апр 2016 в 22:59

DATETIME() не требует квадратных скобок:

messageRepliedDateTime DATETIME

Тип DATETIME используется для значений, которые содержат как дату, так и время. MySQL извлекает и отображает значения DATETIME в формате «ГГГГ-ММ-ДД ЧЧ: ММ: СС». Поддерживается диапазон от 1000-01-01 00:00:00 до 9999-12-31 23:59:59.

Источник: http://dev.mysql.com/doc/refman/5.7 /en/datetime.html

1
Panda 13 Апр 2016 в 23:02