我有一个具有复合主键的数据库表(id_a, id_b)
。这不是他们实际上所说的,但我正在简化这个问题。id_a
是一个外键,id_b
只是一个整数,可以说是“序列号”。我不能只进行id_b
auto_incrementing,因为 InnoDB 存储引擎不允许使用它(因为它不是复合键中的第一个字段)。
我想使这些对象可以与“分组” id_a
,例如:
id_a id_b
----------------
1 1
1 2
2 1
2 2
2 3
并且用 ( ) 插入一行的结果id_a=1
应该自动设置id_b=3
。我想避免使用数据库锁,特别是因为当id_a
完全允许并发插入时不需要锁定整个表。
我通过 SQLAlchemy(使用 ORM)通过 Python 访问这个数据库,尽管我怀疑这个问题可以在客户端(纯 MySQL)方面得到不可知论的回答。