请考虑以下查询-
DELIMITER $
BEGIN NOT ATOMIC
IF (Select count(*) from t1 where name = 'test') = 0 THEN
INSERT into t1(categoryId,name, language)
values
(NextVal(categorySequence),'test','en-US'),
(LastVal(categorySequence),'test','de-DE');
END IF ;
END $
DELIMITER ;
我要插入2条具有相同“ categoryId”的记录。为了生成categoryId,我正在使用mariadb序列https://mariadb.com/kb/en/library/sequence-overview/。 NextVal()返回下一个序列号,LastVal()返回最后一个序列号(与NextVal()函数相同)。如果INSERT语句的顺序是从左到右(我在测试中发现),则上面的查询工作正常。示例:“ insert into x values('1'), ('2')
”。 “ 1”将首先插入,然后插入“ 2”,但是我不确定mariadb是否会始终遵循此顺序。请帮助我了解INSERT顺序或建议我一些不同的查询。