“account_id”的默认值无效

时间:2021-05-29 19:08:21

标签: mysql sql database phpmyadmin

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

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

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'

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

3 个答案:

答案 0 :(得分:0)

从帐户 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;

答案 1 :(得分:0)

你的定义真的很混乱。例如:

  • 默认值应与列的类型相匹配。
  • 默认值不适用于自增列。
  • 长度参数不适用于 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;

答案 2 :(得分:0)

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

account_id INT NOT NULL AUTO_INCREMENT,

或者,如果您需要一个默认值,那么您必须删除 AUTO_INCREMENT

account_id INT(20) NOT NULL  DEFAULT '100001',
相关问题