'account_id' 的默认值无效

Invalid default value for 'account_id'

我尝试使用 phpmyadmin 在 MySQL 数据库中创建一个 table。

当我尝试执行以下查询时出现问题:

CREATE TABLE users(
    account_id INT(20) NOT NULL AUTO_INCREMENT DEFAULT '100001',
    PASSWORD INT(20) NOT NULL DEFAULT '0',
    NAME VARCHAR(250) NOT NULL DEFAULT '0',
    account_type VARCHAR(250) NOT NULL DEFAULT '0',
    balance DOUBLE(20) NOT NULL DEFAULT '0',
    created_at DATE NOT NULL DEFAULT '0',
    PRIMARY KEY(account_id)
) ENGINE = INNODB;

错误说:

MySQL Error: #1067 - Invalid default value for 'account_id'

请帮忙解决这个问题!我尝试了很多解决方案,但 none 似乎有效

从帐户 ID 中删除默认值。 在下面使用。

CREATE TABLE users(
account_id INT(20) NOT NULL AUTO_INCREMENT,
PASSWORD INT(20) NOT NULL DEFAULT '0',
  NAME VARCHAR(250) NOT NULL DEFAULT '0',
 account_type VARCHAR(250) NOT NULL DEFAULT '0',
 balance DOUBLE(20) NOT NULL DEFAULT '0',

created_at DATE NOT NULL DEFAULT '0', 主键(account_id) ) 引擎 = INNODB;

你的定义真是一团糟。例如:

  • 默认值应与列的类型匹配。
  • 默认值不适合自增列。
  • 长度参数不适合 double。可能也适用于整数。
  • 0 不是合适的日期默认值。

所以,你似乎想要这样的东西:

CREATE TABLE users (
    account_id INT NOT NULL AUTO_INCREMENT,
    PASSWORD INT NOT NULL DEFAULT 0,
    NAME VARCHAR(250) NOT NULL DEFAULT '0',
    account_type VARCHAR(250) NOT NULL DEFAULT '0',
    balance DOUBLE NOT NULL DEFAULT 0,
    created_at DATE NOT NULL,
    PRIMARY KEY (account_id)
) ENGINE = INNODB;

如果你想AUTO_INCREMENT那么你不能设置默认值

account_id INT NOT NULL AUTO_INCREMENT,

或者,如果您需要默认值,则必须删除 AUTO_INCREMENT

account_id INT(20) NOT NULL  DEFAULT '100001',