MySQL 查询错误#1064?

标签 mysql

我正在尝试导入我的旧数据库,但这给了我一些错误,这使得我无法在谷歌上搜索 30 分钟,但找不到任何解决方案?

SQL-query:


CREATE TABLE `UG_blogs` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `catid` int(11) NOT NULL,
  `ownerid` int(11) NOT NULL,
  `content` text NOT NULL,
  `date` datetime NOT NULL DEFAULT TIMESTAMP,
  PRIMARY KEY (`id`), KEY id(`id`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;


MySQL meldt: Documentatie

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '
  PRIMARY KEY (`id`), KEY id(`id`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT C' at line 6 

最佳答案

正确的默认值为CURRENT_TIMESTAMP:

CREATE TABLE `UG_blogs` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `catid` int(11) NOT NULL,
  `ownerid` int(11) NOT NULL,
  `content` text NOT NULL,
  `date` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  KEY id(`id`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;

SQL fiddle 是 here .

编辑:

您必须使用旧版本的 MySQL(好吧,不是那么旧,只是 5.6 之前的版本)。好吧,您不能默认 datetime 值(没有触发器),因此您必须接受 TIMESTAMP 值并学会喜欢时间戳函数:

CREATE TABLE `UG_blogs` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `catid` int(11) NOT NULL,
  `ownerid` int(11) NOT NULL,
  `content` text NOT NULL,
  `date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  KEY id(`id`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;

关于MySQL 查询错误#1064?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32802823/

相关文章:

php - 如何使用php在mysql中显示字幕中的多条新闻

mysql - 如何使用 Perl DBI 查看 MySQL 是否在更新期间截断了字段

Drupal慢查询日志分析

PHP无法从mysql获取数据

php - 需要帮助检查用户是否在线

php - 如果等于 N/A,则在向列添加更多文本之前从列中删除文本

mysql - 从子查询中选择具有相同名称的列

mysql - 如何存储和查询数十亿键值对

MySQL WHERE EXISTS 不工作

sql - 仅使用 SQL 的 MySQL INSERT