表创建时出错

时间:2016-04-18 07:35:56

标签: mysql

我在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秒)

1 个答案:

答案 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