我做了一些关于SQL批量插入的研究 - 让我说我要插入100k项目,并将批量大小设置为100。
如果ID列未标记为Identity
,则该批量插入将起作用。
但我发现很有意思(到目前为止理论上)问题,我需要一些意见:
问题可能是,例如, 5个用户同时进行批量插入,然后如何安全地提供ID列值?我无法获得table rows count + 1
,因为这样,所有5个用户都将拥有ID重复项,并且批量插入操作将失败。
答案 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吗?