我有下表:
my_table = sa.sql.table('my_table',
sa.Column('id', sa.BigInteger),
sa.Column('employee_id', sa.BigInteger)
)
我想使用 alembic 添加一个“排名”列。添加本身非常简单,add_column
但我还需要根据现有信息使用 sqlalchemy 填充该列(每个employee_id 都有自己的按id排序的等级)。
例如下表:
id employee_id 等级 -- ---------- ---- 1 1 1 2 1 2 5 1 3 3 2 1 4 3 1 6 3 2
问题与此类似。
唯一的区别是我需要它在 mysql 和 oracle 之上为 sqlalchemy 工作(需要更通用的解决方案)。
如何使用 engine.update 填充排名列?
编辑 1:这个问题不是关于如何通过 alembic 插入或更新记录。这是关于查找将执行特定操作的查询并使用 engine.update 运行此查询