如何修复语法错误mysqli 1064错误

时间:2019-05-07 08:53:16

标签: mysql

工作结束后,我正在工作localhost。我想上传我的数据库服务器phpmyadmin。但是语法错误仍然如何解决?

  

1064-您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册以获取正确的语法,以在'(6)NULL DEFAULT NULL附近使用     使用BTREE的主键(id)   )引擎=第7行的InnoDB AUTO'

DROP TABLE IF EXISTS `veriler`;
CREATE TABLE `veriler`  (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `kullanici` varchar(60) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `gpa` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `durumu` int(10) NULL DEFAULT NULL,
  `miktari` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `tarih` datetime(6) NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;

2 个答案:

答案 0 :(得分:0)

尝试以下简化版本:

CREATE TABLE `veriler` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `kullanici` varchar(60) DEFAULT NULL,
  `gpa` varchar(255) DEFAULT NULL,
  `durumu` int(10) DEFAULT NULL,
  `miktari` varchar(20) DEFAULT NULL,
  `tarih` datetime(6) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;

答案 1 :(得分:0)

直到MySQL 5.6版本才添加对DATETIME值的小数秒的支持。如果您无法升级服务器,则需要从列(6)的定义中删除结尾的tarih,即

`tarih` datetime NULL DEFAULT NULL,

请注意,相对于您的MariaDB服务器,这些值将失去精度。如果需要在数据值中存储微秒,则需要将MySQL服务器升级到5.6或更高版本。