mysql - Mysql字段有什么问题?

标签 mysql sql

当我尝试将转储 SQL 导入数据库时​​,出现错误:

ERROR 1067 (42000) at line 470: Invalid default value for 'created_at'

以下代码说明了表的结构:

CREATE TABLE `siga` (
  `id` int(11) NOT NULL,
  `type` int(11) NOT NULL,
  `pair` int(11) NOT NULL,
  `from` int(11) NOT NULL,
  `send` int(11) DEFAULT NULL,
  `ep` float NOT NULL,
  `tp` float NOT NULL,
  `sl` float NOT NULL,
  `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` datetime DEFAULT NULL,
  `date` datetime NOT NULL,
  `closed_at` datetime DEFAULT NULL,
  `to` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

并插入行”

INSERT INTO `siga` (`id`, `type`, `pair`, `from`, `send`, `ep`, `tp`, `sl`, `created_at`, `updated_at`, `date`, `closed_at`, `to`) VALUES
(3, 5, 1, 77, NULL, 1.2, 1.3, 1.4, '2016-11-01 15:04:19', '2016-11-02 08:52:22', '2016-11-18 15:04:00', NULL, NULL);

最佳答案

你的转储生成了这个表定义,这很奇怪。

具有 DEFAULT CURRENT_TIMESTAMP 的列不能具有 DATETIME 数据类型,它必须具有 TIMESTAMP 数据类型。

因此您需要此列定义。

`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP

关于mysql - Mysql字段有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40503551/

相关文章:

mysql - Concat 连接的结果

sql - pyspark sql数据框只保留空值

C# - SQL - LINQ 查询

MySQL:更改外键列 - 但保持数据引用完整

php - 将 PHP 字符串作为 SQL 命令传递并保留换行符

javascript - 将两个相互关联的菜单从静态转换为动态

sql - 通过 VBA 将日期格式更改为 SQL 查询

MySQL 比较、计数和排序

mysql - 如何使用mysql获得前五名

mysql - 用变量替换函数并将其用作返回值