我有一个标准的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
);
老实说,不知道出了什么问题。
答案 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
);