创建具有错误值的默认值的表

时间:2016-03-11 04:16:56

标签: mysql constraints default

使用MySql Workbench 6.3构建版本6.3.6。 我正在尝试使用Default约束创建一个表,但它给了我错误。

这是脚本

Create Table `Migration_Log2` (

                                    `Id` Int NOT NULL AUTO_INCREMENT,
                                    `FilePath` varchar(1000) NOT NULL,
                                    `FileName` varchar(100) NOT NULL,
                                    `IsSent` bool NOT NULL DEFAULT '0',
                                    `CreatedDate` DateTime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
                                    `ModifiedDate` DateTime NOT NULL DEFAULT CURRENT_TIMESTAMP,
                                    `SendAttemptMade` int NOT NULL DEFAULT '0',
                                    `Message` Text  DEFAULT NULL,
                                     PRIMARY KEY (`Id`),
                                      KEY `migration_log_Id_UNIQUE` (`Id`)
                                    ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
  

错误消息

     

错误代码:1067。' CreatedDate'的默认值无效0.000秒

2 个答案:

答案 0 :(得分:0)

这可能是由于对数据库服务器上的数据类型检查有一些严格限制。 我建议将字段CreatedDate的类型从datetime更改为timestamp

我在网站的VPS中遇到过类似的问题。

答案 1 :(得分:0)

您的CURRENT_TIMESTAMP可能在输出中追加了微秒。

尝试使用:CURRENT_TIMESTAMP(0)作为默认值。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MyFirstMVC.Controllers
{
    public class HomeController : Controller
    {

        // GET: /First/

        public string Index()
        {
            return  "Jay Swaminarayan"; // this string will be display at your run time!!!
        }

    }
}

微秒可能是重要的。看到差异。