gpt4 book ai didi

mysql - 当我插入记录时关系表不更新

转载 作者:行者123 更新时间:2023-11-29 18:05:44 25 4
gpt4 key购买 nike

也许这可能是一个愚蠢的问题。好的,所以我创建了下表:

create table USER(
ID int NOT NULL AUTO_INCREMENT primary key,
firstname varchar(50) not null,
lastname varchar(50) not null,
password varchar(20) not null,
emailU varchar(100) not null
);

create table POST(
ID_User int,
ID_Tweet int,
primary key(ID_User, ID_Tweet),
foreign key(ID_User) references USER(ID) on update cascade on delete cascade,
foreign key(ID_Tweet) references TWEET(ID) on update cascade on delete cascade
);

create table TWEET(
ID int NOT NULL AUTO_INCREMENT primary key,
Text varchar(200)
);

当我插入一些内容时,例如:

insert into USER (firstname, lastname, password, emailU) values ('X', 'Y', 'XY', 'xy@gmail.com');

insert into TWEET (text) values ('Something');

它正确更新了表 USER 和 TWEET,但表 POST 仍为空。为什么?应该使用 ID_User 和 ID_Tweet 进行更新,否则我会出错?

最佳答案

foreing key 只是一个约束,以保持表的一致性,这样就不会有错误的数据(比如没有任何用户的孤立帖子)。正如 MatBailie 所说,数据不会自动填充。

您没有指定您的rdbms,但插入后您需要获取last_insert id。例如在 Sql Server 中

How to get last inserted id?

然后使用它在表 post 上创建一条新记录。

也许您的模型太简单,但现在我认为您不需要表POST,因为没有新数据将其添加到关系中。

如果您在推文中包含 user_id 字段,效果会更好

create table TWEET(
ID int NOT NULL AUTO_INCREMENT primary key,
Text varchar(200),
ID_User int,
foreign key(ID_User) references USER(ID) on update cascade on delete cascade,
);

关于mysql - 当我插入记录时关系表不更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47871277/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com