sql >> データベース >  >> RDS >> PostgreSQL

フラスコで自動インクリメントの主キーを作成できません-sqlalchemy

    上記のコードに問題はありません。実際、autoincrement=Trueも必要ありません。 またはdb.Sequence('seq_reg_id', start=1, increment=1), SQLAlchemyが最初のIntegerを自動的に設定するため autoincrement=TrueとしてFKとしてマークされていないPK列 。

    ここでは、あなたに基づいた作業設定をまとめました。 SQLAlechemyのORMは、IDの生成と、それらを使用したオブジェクトの入力を処理します。宣言型ベースベースのクラスを使用する場合 オブジェクトのインスタンスを作成するために定義したもの。

    from flask import Flask
    from flask.ext.sqlalchemy import SQLAlchemy
    
    app = Flask(__name__)
    app.debug = True
    app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://user:[email protected]/testdb'
    app.config['SQLALCHEMY_ECHO'] = True
    db = SQLAlchemy(app)
    
    class Region(db.Model):
        __tablename__ = 'regions'
        id = db.Column(db.Integer, primary_key=True)
        name = db.Column(db.String(100))
    
    db.drop_all()
    db.create_all()
    
    region = Region(name='Over Yonder Thar')
    app.logger.info(region.id) # currently None, before persistence
    
    db.session.add(region)
    db.session.commit()
    app.logger.info(region.id) # gets assigned an id of 1 after being persisted
    
    region2 = Region(name='Yet Another Up Yar')
    db.session.add(region2)
    db.session.commit()
    app.logger.info(region2.id) # and 2
    
    if __name__ == '__main__':
        app.run(port=9001)
    


    1. Oracle SQLでトップ1を選択し、日付順に並べ替える方法は?

    2. テーブルに影響を与えたSQLをログに記録するトリガーを作成しますか?

    3. 2つの異なるwhere句を持つ2つのデータセットを返す必要があります

    4. MySQLのMIN()とLEAST():違いは何ですか?