ygo*_*goe 7 sql sqlite sequence
我正在编写一个基于PHP的Web应用程序,它应该可以与多个数据库系统一起使用.最重要的是MySQL和SQLite,但PostgreSQL和其他人也会很好.为此,我尝试尽可能使用便携式SQL.如果无法做到这一点,我在查询中定义了一些由我的数据库层处理并转换为特定于平台的SQL命令的元词.
我现在正在尝试添加序列支持.每个DBMS处理不同的序列,没有通用的方法在SQL中编写它们.我已阅读并了解PostgreSQL的工作方式.我找到了一个有趣的MySQL解决方案,它使用MyISAM表来逃避事务的隔离约束.毕竟,序列不会随着它们使用的事务而回滚,这正是我想要的.序列应该是多用户安全的.
现在我还没有找到SQLite的解决方案.它缺乏内置的序列支持.它没有提供在正在运行的事务之外存储数据的方法.我目前的实现是锁定表足够远,以执行SELECT MAX(...)并使用该值.但我想完全摆脱它.在SQLite中,这种方法需要锁定整个数据库!
有没有人知道SQLite的解决方案?
我会使用lastInsertRowID。这将返回最后插入数据的 rowid(等于该行的 INTEGER PRIMARY KEY 值)。那么你就不需要任何序列了。
| 归档时间: |
|
| 查看次数: |
11731 次 |
| 最近记录: |