2015-06-19 2 views
-1

У меня есть стандартная конфигурация LAMP (apache2, mysql, php5), работающая на ubuntu, и я просто набираю команды mysql в свой терминал. Я зашел в командную строку mysql как root. Пока я создал новую базу данных, но теперь проблема началась.Ошибка синтаксиса mysql 1064 (42000)

Я пытаюсь создать простую таблицу, но получаю синтаксическую ошибку mysql и не могу понять, что я делаю неправильно.

Это ошибка:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 10 

И это мой запрос:

CREATE TABLE IF NOT EXISTS `customers` (
    `uid` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, 
    `name` varchar(50) NOT NULL, 
    `email` varchar(50) NOT NULL, 
    `phone` varchar(100) NOT NULL, 
    `password` varchar(200) NOT NULL, 
    `address` varchar(50) NOT NULL, 
    `city` varchar(50) NOT NULL, 
    `created` datetime NOT NULL DEFAULT TIMESTAMP 
); 

Понятия не имею, что это не так честно.

ответ

0

Можно присвоить значение по умолчанию, как current_timestamp не только timestamp

CREATE TABLE IF NOT EXISTS `customers` (
    `uid` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, 
    `name` varchar(50) NOT NULL, 
    `email` varchar(50) NOT NULL, 
    `phone` varchar(100) NOT NULL, 
    `password` varchar(200) NOT NULL, 
    `address` varchar(50) NOT NULL, 
    `city` varchar(50) NOT NULL, 
    `created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP 
); 
0

timestamp не является значением. Я предполагаю, что вы хотели заполнить created текущей меткой времени, которая была бы вызовом функции CURRENT_TIMESTAMP(). Полная инструкция:

CREATE TABLE IF NOT EXISTS `customers` (
    `uid` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, 
    `name` varchar(50) NOT NULL, 
    `email` varchar(50) NOT NULL, 
    `phone` varchar(100) NOT NULL, 
    `password` varchar(200) NOT NULL, 
    `address` varchar(50) NOT NULL, 
    `city` varchar(50) NOT NULL, 
    `created` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP() 
); 
0

TIMESTAMP не является действительным, он должен быть CURRENT_TIMESTAMP, так что ваш код должен быть

CREATE TABLE IF NOT EXISTS `customers` (
    `uid` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, 
    `name` varchar(50) NOT NULL, 
    `email` varchar(50) NOT NULL, 
    `phone` varchar(100) NOT NULL, 
    `password` varchar(200) NOT NULL, 
    `address` varchar(50) NOT NULL, 
    `city` varchar(50) NOT NULL, 
    `created` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP 
); 
Смежные вопросы