MySQL 错误:Invalid default value for ‘dateAdded’

MySQL 错误:Invalid default value for ‘dateAdded’

在使用MySQL创建表时,可能会遇到以下错误提示:“Invalid default value for ‘dateAdded’”。这个错误通常表示在默认值中设置了无效的日期值。

阅读更多:MySQL 教程

1. 问题分析

MySQL要求日期默认值的格式必须是YYYY-MM-DD或YYYY-MM-DD HH:MM:SS。如果默认值格式不正确,则会出现Invalid default value错误。

例如,下面的代码会导致Invalid default value错误:

  CREATE TABLE my_table (
    id INT NOT NULL AUTO_INCREMENT,
    name VARCHAR(50) NOT NULL,
    dateAdded TIMESTAMP DEFAULT '00-00-00 00:00:00',
    PRIMARY KEY (id)
  );

2. 解决方案

要解决Invalid default value错误,可以按照以下两种方法修改代码:

第一种方法:修改默认值的格式

使用正确的日期格式来指定默认值。例如,下面的代码可以避免Invalid default value错误:

  CREATE TABLE my_table (
    id INT NOT NULL AUTO_INCREMENT,
    name VARCHAR(50) NOT NULL,
    dateAdded TIMESTAMP DEFAULT '1970-01-01 00:00:00',
    PRIMARY KEY (id)
  );

第二种方法:禁用STRICT模式

在MySQL5.7版本之前,默认是不开启STRICT模式的。在MySQL5.7版本之后,默认开启STRICT模式。开启STRICT模式会导致MySQL检查默认值是否有效。因此,如果禁用STRICT模式,则可以避免Invalid default value错误。

使用以下代码可以禁用STRICT模式:

  SET sql_mode='NO_ENGINE_SUBSTITUTION';

3. 案例演示

下面的示例演示了如何使用正确的日期格式来指定默认值。示例创建了一个名为my_table的表,它包含三个列:id、name和dateAdded。

  CREATE TABLE my_table (
    id INT NOT NULL AUTO_INCREMENT,
    name VARCHAR(50) NOT NULL,
    dateAdded TIMESTAMP DEFAULT '1970-01-01 00:00:00',
    PRIMARY KEY (id)
  );

总结

在MySQL创建表时,遇到Invalid default value错误,一般是因为默认值的日期格式不正确。要解决这个问题,可以修改默认值的格式,或者禁用STRICT模式。正确地创建MySQL表格是保证正确使用数据库的重要一步。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程