import sqlite3

conn = sqlite3.connect(":memory:")
conn.execute("CREATE TABLE quotes (id TEXT PRIMARY KEY, price INT, version INT)")
conn.execute("INSERT INTO quotes VALUES ('Q1', 10000, 1)")
conn.commit()


def change_price(quote_id, expected_version, new_price):
    with conn:
        changed = conn.execute(
            "UPDATE quotes SET price=?, version=version+1 "
            "WHERE id=? AND version=?",
            (new_price, quote_id, expected_version),
        ).rowcount
    return changed == 1


first_version = second_version = 1
assert change_price("Q1", first_version, 11000)
assert not change_price("Q1", second_version, 9000)
price, version = conn.execute(
    "SELECT price, version FROM quotes WHERE id='Q1'"
).fetchone()
assert (price, version) == (11000, 2)
approved_ceiling = 10500
assert price > approved_ceiling  # 需要重新审批
conn.close()
print("旧版本提交被拒绝，新价格超过原审批上限")
