【问题标题】:sqlite incremental key over 2 tablessqlite 增量键超过 2 个表
【发布时间】:2014-02-12 22:09:39
【问题描述】:

我正在开发一个基于 sqlite 的 pos 系统。一张表包含所有订单/购买。每天晚上系统应该将所有订单复制到不同数据库中的不同表中,否则订单表会变得太重(每月大约 15000 新行),整个系统会变得太慢。

我的问题是,当我将每日订单复制到备份数据库中时,我失去了我最后的自动增量值。这意味着:sqlite 再次从 1 开始。但是我需要一个唯一的 ID 来处理超过 2 个数据库/表的订单?

有人有想法吗,我如何在删除所有行时强制 sqlite 不重置最后一个自动增量值?

【问题讨论】:

  • 将您的自动增量值与数据库标志一起用作复合主键

标签: php sqlite pdo auto-increment


【解决方案1】:
CREATE TABLE backup_table(
  tableflag integer not null,   
  autoincid integer not null,  
  column-n   ....,
  ....., 
  PRIMARY KEY (tableflag , autoincid)
);

并将原始表中的原始自动增量值复制到备份表中,并为要合并的每个表使用特殊标志

否则,您可以在删除后插入具有最高自动增量值的行加上备份表的 1 作为第一行,然后 sqlite 只会增加该值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-11
    • 2011-12-21
    • 2012-01-21
    • 2013-04-18
    • 1970-01-01
    • 2015-12-15
    • 1970-01-01
    相关资源
    最近更新 更多