加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何在SQLite中使用序列?

发布时间:2020-12-12 19:06:13 所属栏目:百科 来源:网络整理
导读:我正在编写一个基于 PHP的Web应用程序,它应该可以与多个数据库系统一起使用.最重要的是MySQL和SQLite,但PostgreSQL和其他人也会很好.为此,我尝试尽可能使用便携式SQL.如果无法做到这一点,我在查询中定义了一些由我的数据库层处理并转换为特定于平台的SQL命令
我正在编写一个基于 PHP的Web应用程序,它应该可以与多个数据库系统一起使用.最重要的是MySQL和SQLite,但PostgreSQL和其他人也会很好.为此,我尝试尽可能使用便携式SQL.如果无法做到这一点,我在查询中定义了一些由我的数据库层处理并转换为特定于平台的SQL命令的元字.

我现在正在尝试添加序列支持.每个DBMS处理不同的序列,没有通用的方法在SQL中编写它们.我已经阅读并理解了PostgreSQL does it的方式.我发现了一个有趣的solution for MySQL,它使用MyISAM表来逃避事务的隔离约束.毕竟,序列不会随着它们使用的事务而回滚,这正是我想要的.序列应该是多用户安全的.

现在我还没有找到SQLite的解决方案.它缺乏内置的序列支持.它没有提供在正在运行的事务之外存储数据的方法.我目前的实现是锁定表足够远,以执行SELECT MAX(…)并使用该值.但我想完全摆脱它.在SQLite中,这种方法需要锁定整个数据库!

有没有人知道SQLite的解决方案?

我会使用lastInsertRowID.这将返回最后插入数据的rowid(等于该行的INTEGER PRIMARY KEY值). 那你就不需要任何顺序了.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读