mariadb多行插入顺序

a2mppw5e  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(319)

请考虑以下问题-

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 ;

我想插入两个具有相同“categoryid”的记录。要生成categoryid,我使用的是mariadb序列https://mariadb.com/kb/en/library/sequence-overview/. nextval()返回下一个序列号,lastval()返回上一个序列号(与nextval()函数相同)。如果insert语句的顺序是从左到右(我在测试中发现),那么上面的查询可以正常工作。示例:“ insert into x values('1'), ('2') ". '“1”将先插入“2”,但我不确定mariadb是否始终遵循此顺序。请帮助我插入订单或建议我一些不同的查询。

xn1cxnb4

xn1cxnb41#

没关系。mariadb确保每个插入使用不同的序列值。
你为什么那么在乎谁先被处死?如果确实需要确保特定的插入顺序,则执行两个单独的insert sql语句。

相关问题