【问题标题】:Invalid default value for 'account_id'“account_id”的默认值无效
【发布时间】:2021-08-17 15:35:51
【问题描述】:

我尝试使用 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'

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

【问题讨论】:

  • 您的密码...是INT?请记住,当您遇到问题时,请包含确切的错误文本,不要只是大喊“我有问题”而没有进一步的细节。
  • 提示:不要将浮点数用于货币工作。始终,始终使用固定位置的表示形式,例如 DECIMAL(12,2)

标签: mysql sql database phpmyadmin


【解决方案1】:

从帐户 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) ) 引擎 = 创新;

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 谢谢,当我尝试查询时它工作正常,我试图在没有任何 sql 命令的情况下从浏览菜单创建一个表,这就是导致问题的原因,现在它工作正常。谢谢!先生好日子
    【解决方案3】:

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

    account_id INT NOT NULL AUTO_INCREMENT,
    

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

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

    【讨论】:

      猜你喜欢
      • 2018-01-05
      • 1970-01-01
      • 1970-01-01
      • 2020-12-01
      • 2014-12-07
      • 2017-06-06
      • 1970-01-01
      • 2016-06-28
      • 2019-02-28
      相关资源
      最近更新 更多