问题描述
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 (将#修改为@)