我在MySQL终端上粘贴下面的MySQL命令后得到了以下错误。这个代码我是从我项目的生产环境中得到的。我想根据生产环境db更新本地数据库
mysql> CREATE TABLE `cityguide_pointofinterest` (
-> `id` int(11) NOT NULL AUTO_INCREMENT,
-> `name` varchar(30) COLLATE utf8_danish_ci NOT NULL,
-> `vip` tinyint(1) NOT NULL,
-> `description` longtext COLLATE utf8_danish_ci NOT NULL,
-> `category_id` int(11) NOT NULL,
-> `email` varchar(254) COLLATE utf8_danish_ci,
-> `latitude` double NOT NULL,
-> `longitude` double NOT NULL,
-> `phone` varchar(15) COLLATE utf8_danish_ci,
-> `place` varchar(250) COLLATE utf8_danish_ci DEFAULT NULL,
-> `website` varchar(200) COLLATE utf8_danish_ci,
-> `date_created` datetime(6) NOT NULL,
-> `date_modified` datetime(6) NOT NULL,
-> `views` int(11) NOT NULL,
-> `picture_1` varchar(100) COLLATE utf8_danish_ci,
-> `picture_2` varchar(100) COLLATE utf8_danish_ci,
-> `picture_3` varchar(100) COLLATE utf8_danish_ci,
-> `order_id` varchar(20) COLLATE utf8_danish_ci DEFAULT NULL,
-> PRIMARY KEY (`id`),
-> KEY `cityguide_pointofi_category_id_8ab78aba_fk_cityguide_category_id` (`category_id`),
-> CONSTRAINT `cityguide_pointofi_category_id_8ab78aba_fk_cityguide_category_id` FOREIGN KEY (`category_id`) REFERENCES `cityguide_category` (`id`)
-> ) ENGINE=InnoDB AUTO_INCREMENT=47 DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci;
错误1064(42000):您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以便使用接近'(6)NOT NULL的正确语法,
date_modified
datetime(6)NOT NULL,
views
int(11)NOT NULL'在第13行
MySQL的> / *!40101 SET character_set_client = @saved_cs_client * /;
查询正常,0行受影响(0.00秒)
答案 0 :(得分:4)
我认为您的MYSQL版本是5.5或更低。
MySQL 5.7 对TIME,DATETIME和TIMESTAMP值的小数秒支持,精度高达微秒(6位):
要定义包含小数秒部分的列,请使用 语法type_name(fsp),其中type_name是TIME,DATETIME或 TIMESTAMP和fsp是小数秒的精度。例如:
CREATE TABLE t1 (t TIME(3), dt DATETIME(6));
fsp值(如果给定)必须在0到6的范围内。值0表示没有小数部分。如果省略,则默认精度为0.(这与标准SQL默认值6不同,以便与以前的MySQL版本兼容。)
<强> SQL FIDDLE DEMO 强>