4

我正在编写一个需要生成唯一代码的 PHP 脚本。这些代码由管理员用户生成,一次 100K。我有一个生成代码的算法,但重复出现的可能性很小——大约 0.001% 的可能性,但它仍然可能导致问题。

我正在寻找运行批量插入语句:

INSERT INTO coupons ( 'code' ) VALUES ('code1'),('code2'),('code3');

这将有 100K 代码。我想知道的是,它们是否都是唯一的,除了让我说 code100 将插入在该代码处停止还是会继续插入其余的插入并通过警告让我知道。

如果它最终会在第一次重复时失败,我该怎么办?性能不是一个大问题,因为它是一个管理区域,我可以关闭该过程直到它完成。

4

1 回答 1

2

如果在批量插入中发现重复项,则整个插入将失败——不仅仅是重复项之后的所有内容。如果性能不是问题并且丢失一些插入也没关系,您可以INSERT单独执行每个语句。否则,请更新您的算法以在生成代码时检查重复项。

于 2013-05-13T16:12:59.877 回答