回答

收藏

如何在SQLite中使用序列?

技术问答 技术问答 261 人阅读 | 0 人回复 | 2023-09-14

我正在写一个基础PHP的Web该应用程序可与多个数据库系统一起使用。最重要的是MySQL和SQLite,但是PostgreSQL还有其他的。为此,我试着尽可能多地使用可移植物SQL。我在查询中定义了一些元数据,它们由数据库层处理,并将其转换为特定的平台SQL命令。
. |+ L; q) C2 j我现在正在尝试添加序列支持。DBMS处理序列的方法不同,没有通用的方法SQL写下来。我已经读过并理解了。PostgreSQL的方式。我发现了一个有趣的MySQL使用解决方案MyISAM它似乎逃避了事务的隔离和约束。毕竟,序列不会与使用它们的事务一起滚动,这正是我想要的。序列应该是多用户安全的。
# a, p. ~# L( A0 s: b" ?4 \现在还没找到SQLite解决方案。它缺乏内置的序列支持。它没有提供在正在运行的事务之外存储数据的方法。我目前的实现是将表锁定得足够远SELECT' w: p) c; ]6 L0 H2 M9 V
MAX(…)并使用该值。但我想完全摆脱它。SQLite该方法需要锁定整个数据库!3 b1 f! w1 {7 T" r1 |
有些人知道使用SQLite解决方案吗?
& L+ n. c% x) x! @                                                                $ o: t" p  ]) m: F& Y: m! ]
    解决方案:                                                                * w" V. r0 I3 r5 i, a/ Q
                                                                我将使用lastInsertRowID。这将返回最终插入的数据rowid(等于该行的INTEGER PRIMARY KEY值)。然后,你不需要任何顺序。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则