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
ajay, das ist zu verfolgen die Anzahl der Datensätze? was ist, wenn Sie die Datensätze löschen? warum nicht verwenden Sie count()
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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie eine
AUTO_INCREMENT
nicht primary key aber man kann nicht zweiAUTO_INCREMENT
FelderWenn Sie nicht über
AUTO_INCREMENT
können Sie eineAUTO_INCREMENT
undUNIQUE
mit so etwas wie dieses:InformationsquelleAutor genespos