相关疑难解决方法(0)

SQLAlchemy在提交之前获取自动增量的主键

当我创建一个带有自动递增主键的表时,是否有办法获得主键(即保留主键)而不实际提交?

我想在事务中放置两个操作,但其中一个操作将取决于在上一个操作中分配了哪个主键.

python sql sqlalchemy

40
推荐指数
2
解决办法
2万
查看次数

SQLAlchemy:如何在不将其作为主键的情况下创建整数列auto_increment(和unique)?

我正在使用Flask扩展来为SQLAlchemy定义我的数据库模型.我希望id列是int类型并具有auto_increment属性但不使其成为主键.我该如何实现?

我试过这个:

from flask import Flask, jsonify
from flask.ext.sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:ajay@localhost/pydb'
app.config['SQLALCHEMY_ECHO'] = True
db = SQLAlchemy(app)

class Scenario(db.Model):
    scid = db.Column(db.Integer, nullable=False, unique=True, autoincrement=True)
    scenario_name = db.Column(db.String(100), primary_key=True)
    scenario_description = db.Column(db.String(200), nullable=False)
    image_id = db.Column(db.Integer, db.ForeignKey('images.id', onupdate='CASCADE', ondelete='CASCADE'))

    def __init__(self, scenario_name, scenario_description, image_id=None):
        self.scenario_name = scenario_name
        self.scenario_description = scenario_description
        self.image_id = image_id

    def __repr__(self):
        return '<Scenario %r, %r, %r>' % (self.scenario_name, self.scenario_description, self.image_id)
Run Code Online (Sandbox Code Playgroud)

但是这不会将scid列设置为auto_increment.

python mysql auto-increment flask flask-sqlalchemy

13
推荐指数
1
解决办法
2万
查看次数