我有这个可行的查询,它根据某些条件将适当的数据插入“选择”表中:

INSERT INTO selections (auctionid, selections.order)
VALUES
((SELECT id FROM auctions, game WHERE auctions.BetfairMark = game.BetfairMarketID), 1,
((SELECT id FROM auctions, game WHERE auctions.BetfairMark = game.BetfairMarketID), 2,
((SELECT id FROM auctions, game WHERE auctions.BetfairMark = game.BetfairMarketID), 3


但是我的问题是如何改进此查询以防止在运行此查询时在表中获得相同的重复项?

Selections表具有3列:id,Auctionid,order,其中id是为每个新记录生成的自动增量编号。

因此,Auctionid和order不应是记录中相同的值。

最佳答案

UNIQUE INDEX添加到(auctionid, order)对。

ALTER TABLE selections ADD UNIQUE index_name (`auctionid`, `order`)


并且当您插入时,可以使用INSERT IGNORE INTO ...,以便它忽略重复项而不是抛出错误。 (在您批量插入并且需要重复时有用)

关于mysql - MySQL查询-INSERT INTO命令,但没有重复,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7264918/

10-12 20:54