我正在使用一个带有自增Id和邮件地址的表格
对于每次
我也尝试了
Mail
。该表格被用在其他4个表格中,主要用于节省存储空间(字符串只保存一次而不是4次)。我使用INSERT OR IGNORE
来将邮件地址盲目添加到表格中,如果已经存在则忽略更新。这种方法比使用SELECT ...
检查是否存在并进行必要的INSERT
要快得多。对于每次
INSERT OR IGNORE
,无论是否忽略或执行,自增计数器都会增加。在一次运行中,我大约有500k数据来处理。因此,在每次运行后,最后一个自增键会增加500k。我知道有2^63-1个可能的键,所以需要很长时间才能用完它们。我也尝试了
INSERT OR REPLACE
,但这会在每次运行命令时增加数据集的Id,因此根本不是解决方案。
有没有办法防止每次INSERT OR IGNORE
都增加自增键?
mIdMail mMail
"1" ""
"7" "mail1@example.com"
"15" "mail2@example.com"
"17" "mail3@example.com"
"19" "mail4@example.com"
"23" "mail5@example.com"
...
INSERT OR IGNORE
INTO MAIL
( mMail )
VALUES ( ? );
CREATE TABLE IF NOT EXISTS MAIL (
mIdMail INTEGER PRIMARY KEY AUTOINCREMENT,
mMail CHAR(90) UNIQUE
);