MySQL AUTO_INCREMENT不起作用:ER_NO_DEFAULT_FOR_FIELD:字段“ id”没有默认值

问题描述

CREATE TABLE User (
  id int NOT NULL AUTO_INCREMENT,username VARCHAR(20) NOT NULL,email VARCHAR(40) NOT NULL,image_file VARCHAR(40),password VARCHAR(40) NOT NULL,PRIMARY KEY (id)
);

CREATE TABLE Post (
  id int NOT NULL AUTO_INCREMENT,date_posted DATE NOT NULL,content VARCHAR(10000) NOT NULL,user_id INT,like_count INT NOT NULL,PRIMARY KEY (id)
);

CREATE TABLE Post_comment (
  id int NOT NULL AUTO_INCREMENT,date_commented DATE NOT NULL,post_id INT,PRIMARY KEY (id)
);  

CREATE TABLE post_liked_by (
  user_id int NOT NULL,post_id int NOT NULL,PRIMARY KEY (user_id,post_id)
);

CREATE TABLE comment_liked_by (
  user_id int NOT NULL,comment_id int NOT NULL,comment_id)
);

ALTER TABLE User AUTO_INCREMENT=1;

ALTER TABLE Post
ADD FOREIGN KEY(user_id)
REFERENCES User(id)
ON DELETE SET NULL;

ALTER TABLE Post_comment
ADD FOREIGN KEY(user_id)
REFERENCES User(id)
ON DELETE SET NULL;

ALTER TABLE Post_comment
ADD FOREIGN KEY(post_id)
REFERENCES User(id)
ON DELETE SET NULL;

INSERT INTO User (username,email,password) VALUES ('egname','eg@eg.com','egpassword')

代码给出错误 ER_NO_DEFAULT_FOR_FIELD:当我尝试插入User表时,字段'id'没有认值,但我不确定为什么。我认为通过为id字段设置AUTO_INCREMENT可以将认值设置为1?我的代码编辑器的配置可能有问题吗?我正在使用Popsql btw。

当我为id指定一个值时,它工作正常,但是每次插入新数据时我都需要它自动递增。

对于上下文,我正在尝试构建一个简单的项目,例如facebook的克隆。提前Tqvm。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)