gpt4 book ai didi

mysql - 为多对多关系插入多个值时如何避免重复 - mysql

转载 作者:行者123 更新时间:2023-11-29 08:37:57 24 4
gpt4 key购买 nike

将关键字添加到 db.我有 3 张 table 。

Articles
-ArticleID PK
-ArticleTitle
-ArticleBody

Keywords
-KeywordID PK
-Keyword UNIQUE

Keyword_Article
-KeywordID PK
-ArticleID

尝试找出如何尽可能有效地更新关键字表。我现在只有 SQLBUDDY 可以使用。

我已经取得了成功

INSERT INTO Keywords (KeywordID, Keyword)
VALUES (NULL,'test');
INSERT INTO Keyword_Article (KeywordID, ArticleID)
VALUES ('LAST_INSERT_ID()','2222');

但是当我遇到一个已经存在的关键字时,这显然不起作用。我猜需要 if/else/then 或者是否有其他方法可以完成此操作。我读过有关存储过程的信息,如果第一个表失败,它可以帮助阻止第二个表填充,但我似乎无法让它们在 SQLBUDDY 中工作。

例如。

BEGIN
INSERT INTO Keywords (KeywordID, Keyword)
VALUES (NULL,'test')
INSERT INTO Keyword_Article (KeywordID, ArticleID)
VALUES ('LAST_INSERT_ID()','2222');
COMMIT;

一直报错。

进行这种多重插入的最佳方法是什么?

最佳答案

你可以这样做:

INSERT IGNORE INTO Keywords (Keyword)
VALUES ('test')
INSERT INTO Keyword_Article (KeywordID, ArticleID)
VALUES ((SELECT KeywordID FROM Keywords WHERE Keyword = 'test'),'2222');

这将尝试插入一个新的关键字,但如果它已经存在则忽略它。第二个查询将始终找到 KeywordID,无论它是否是新的。

关于mysql - 为多对多关系插入多个值时如何避免重复 - mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14696857/

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