SQLAlchemy: Wie eine integer-Spalte mit auto_increment (und einzigartig), ohne dass es einen primary key?

Ich bin mit Kolben-Erweiterung für SQLAlchemy zu definieren, meine Datenbank-Modell. Ich möchte eine id-Spalte Typ int und auto_increment-Eigenschaft, aber ohne dass es einen primary key. Wie kann ich es erreichen?

Habe ich versucht, dieses:

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)

aber dies nicht der scid-Spalte als auto_increment.

möglich, Duplikat der Set AUTO_INCREMENT mit SqlAlchemy mit MySQL auf Spalten mit nicht-Primärschlüssel?
Ich sah Sie an, Frage aber nicht helfen.
Dann bringen die Aufmerksamkeit auf diese Frage, vielleicht mit ein Kopfgeld. Ihre Frage ist immer noch ein Duplikat von diesem post;) Sie versuchen, zu markieren, ein nicht-primary key-int-Spalte mit auto-increment.
Die andere Frage die top-Antwort sagt alles: SQLAlchemy nicht wirklich dies leicht zu handhaben. Auch, Einstellung der autoincrement Feld hat keine Auswirkungen für Spalten, die nicht Teil des Primärschlüssels.
ajay, das ist zu verfolgen die Anzahl der Datensätze? was ist, wenn Sie die Datensätze löschen? warum nicht verwenden Sie count()

InformationsquelleAutor ajay | 2013-10-08

Schreibe einen Kommentar