数据库 - ID列 - 身份与否?

时间:2015-02-26 09:20:48

标签: sql bulkinsert

我做了一些关于SQL批量插入的研究 - 让我说我要插入100k项目,并将批量大小设置为100。

如果ID列未标记为Identity,则该批量插入将起作用。

但我发现很有意思(到目前为止理论上)问题,我需要一些意见:

问题可能是,例如, 5个用户同时进行批量插入,然后如何安全地提供ID列值?我无法获得table rows count + 1,因为这样,所有5个用户都将拥有ID重复项,并且批量插入操作将失败。

2 个答案:

答案 0 :(得分:1)

您可以将SEQUENCE用作UNIQUE ID生成器,或尝试使用TRIGGER ON INSERT获取唯一ID。

修改

使用mysql,您可以为每一行构建触发器

DELIMITER $$

CREATE TRIGGER adresse_trigger_insert_check
 BEFORE INSERT ON adresse
 FOR EACH ROW BEGIN
 IF NEW.land IS NULL THEN
  SET NEW.land := 'XY';
 END IF;
END$$

DELIMITER ;

答案 1 :(得分:1)

我应该使用IDENTITY吗?

Sometimes Another Approach Works Better