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

Databases - ID column - identity or not?

我对 SQL 批量插入做了一些研究 - 假设我有 10 万个项目要插入,我将批量大小设置为 100。

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

但我发现了一个非常有趣的(到目前为止是理论上的)问题,我需要一些意见:

问题可能是,例如5 个用户同时进行批量插入,那么如何安全地提供 ID 列值?我不能只获取 table rows count + 1,因为这样所有 5 个用户的 ID 都会重复,并且批量插入操作将失败。

您可以使用 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 ;

我是否应该使用 IDENTITY?

Sometimes Another Approach Works Better