mysql语法错误1064(42000)

时间:2015-06-19 17:22:13

标签: mysql

我有一个标准的LAMP配置(apache2,mysql,php5),在ubuntu上运行,我只是在我的终端中键入mysql命令。我以root身份登录mysql命令行。到目前为止,我已经创建了一个新数据库,但现在开始出现问题。

我正在尝试创建一个简单的表,但是我收到了一个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
);

老实说,不知道出了什么问题。

3 个答案:

答案 0 :(得分: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()
);

答案 1 :(得分: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
);

答案 2 :(得分: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
);