Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 创建表时出错_Mysql - Fatal编程技术网

Mysql 创建表时出错

Mysql 创建表时出错,mysql,Mysql,在MySQL终端上粘贴下面的MySQL命令后,我得到了下面的错误。这段代码是我从项目的生产环境中得到的。我想根据生产环境的数据库更新本地数据库 mysql> CREATE TABLE `cityguide_pointofinterest` ( -> `id` int(11) NOT NULL AUTO_INCREMENT, -> `name` varchar(30) COLLATE utf8_danish_ci NOT NULL, ->

在MySQL终端上粘贴下面的MySQL命令后,我得到了下面的错误。这段代码是我从项目的生产环境中得到的。我想根据生产环境的数据库更新本地数据库

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服务器版本对应的手册,了解使用near'(6)NOT NULL的正确语法,
date\u modified
datetime(6)不为空,
查看第13行的
int(11)NOT NULL' mysql>/*!40101 SET character_SET_client=@saved_cs_client*/;
查询OK,0行受影响(0.00秒)

我认为您的MYSQL版本是5.5或更低

MySQL 5.7支持时间、日期时间和时间戳值的小数秒,精度高达微秒(6位):

要定义包含小数秒部分的列,请使用 语法类型_name(fsp),其中类型_name是时间、日期时间或 时间戳,fsp是小数秒精度。例如:

fsp值(如果给定)必须在0到6之间。值为0表示没有小数部分。如果省略,默认精度为0。(为了与以前的MySQL版本兼容,这与标准SQL默认值6不同。)


在您的查询中,
日期时间(6)
的作用是什么?我的意思是,为什么是6?我很确定它会用
datetime
替换所有的
datetime(6)
,所以它应该是
datetime
?是的,我想是的。我的意思是我总是这样使用它,我不认为你可以在这里设置长度。即使你可以,我也看不出会有什么变化,因为MySQL中的
datetime
格式已经在大小上受到限制。
datetime
datetime(6)
之间有什么大的区别吗?
CREATE TABLE t1 (t TIME(3), dt DATETIME(6));