我尝试使用 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'
请帮忙解决这个问题!我尝试了很多解决方案,但似乎没有一个有效
答案 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',