我有一个本地数据库,我正在尝试插入多行数据,但我不想重复。我没有我想要插入的第二个数据库。我有一个sql文件。这个结构就是我插入的db:
(db)artists
(table)names-> ID | ArtistName | ArtistURL | Modified
我正在尝试插入此内容:
INSERT names (ArtistName, Modified)
VALUES (name1, date),
(name2, date2),
...
(name40, date40)
问题是,如何通过检查我希望使用SQL插入的数据列表的特定列来插入数据并避免重复?
答案 0 :(得分:0)
重复什么?名字重复?重复行?我假设没有重复ArtistName
。
UNIQUE(ArtistName)
(或PRIMARY KEY
)。INSERT IGNORE
代替IGNORE
。(否LEFT JOIN
等)
答案 1 :(得分:0)
我最后通过将所有值插入到一个全新的表中来了解@Hart CO的建议。然后我使用了这个SQL语句:
SELECT ArtistName
FROM testing_table
WHERE !EXISTS
(SELECT ArtistName FROM names WHERE
testing_table.ArtistName = testing_table.ArtistName)
这给了我所有的艺术家名字,这些名字都在我的数据中,而不在名单表中。 然后我导出到一个sql文件并稍微调整INSERT以插入带有相应数据的names表中。
INSERT IGNORE INTO `names` (ArtistName) VALUES
*all my values from the exported data*
其中(ArtistName)可以返回任何数据。例如, (ArtistName,ArtistUrl,Modified)。只要从导出返回的值有3个值。
这可能不是最有效的,但它适用于我想要做的事情。