Come creare una tabella utilizzando la classe dichiarativa ORM senza chiave primaria? Non è riuscito a iniziare se non ho creato nessuna colonna il primary_key = True
.SQLAlchemy dichiarativo: tabella senza chiavi primarie?
risposta
SQLAlchemy core non si lamenta della mancanza della chiave primaria, quindi è possibile creare tale tabella con Table(…)
. Ma la progettazione ORM richiede un modo per identificare la riga corrispondente all'oggetto, quindi non è possibile utilizzare la tabella senza la chiave primaria in ORM.
Perché è necessario aggiungere questo indice in un secondo momento? È un requisito reale o un tentativo di risolvere qualche problema che probabilmente può essere risolto in altro modo? Nel caso sia necessaria la chiave primaria composta, è possibile definirla con l'argomento primary_key=True
in diversi Column
s o specificando PrimaryKeyConstraint(…)
in .
Intendo creare un indice a più colonne. Sarebbe bello se potessi dichiarare esplicitamente che l'indice deve essere costruito usando BTREE (il mio database è MySQL). Qualche soluzione? – Determinant
La maggior parte dei database (incluso MySQL) usa B-Tree di default, quindi basta specificare 'primary_key = True' in tutti i' Column's che partecipano all'indice composito. La specifica esplicita B-Tree (o altro tipo) è supportata in "Indice (...)" ad es. per PostgreSQL, ma non per MySQL e non in 'PrimaryKeyConstraint'. Sembra una funzionalità mancante in SQLAlchemy. –
puoi anche mettere l'elenco di colonne che sono "primarie" nell'argomento "primary_key" a mapper(), con dichiarativo '__mapper_args__ = {" primary_key ":(col1, col2)}}' – zzzeek
- 1. Doctrine - Tabella senza chiavi primarie
- 2. Ordinamento chiavi primarie
- 3. SQL Chiavi esterne multiple come chiavi primarie
- 4. NHibernate mappatura chiavi primarie multiple
- 5. è possibile creare due chiavi primarie in una tabella
- 6. sqlalchemy: rapporto uno a uno con dichiarativo
- 7. Inserimento di record con chiavi primarie autoincrementanti
- 8. interrogazione SQLite per trovare le chiavi primarie
- 9. @OneToMany e chiavi primarie composite?
- 10. Chiavi primarie con Apache Spark
- 11. Possiamo generare automaticamente chiavi primarie senza query o chiamate JDBC?
- 12. Chiavi primarie e esterne in pgAdmin
- 13. Selezione chiavi primarie che non hanno chiavi esterne in un'altra tabella
- 14. Flask come si usa sqlalchemy in modo dichiarativo con init_db()?
- 15. Come imposto i valori predefiniti degli attributi in sqlalchemy dichiarativo?
- 16. Postgres e indici su chiavi esterne e chiavi primarie
- 17. ordinamento unix, con chiavi primarie e secondarie
- 18. sql scambia i valori delle chiavi primarie
- 19. mysql chiavi primarie illimitate incremento automatico
- 20. Due colonne come chiavi primarie in mysql?
- 21. Progettazione database - convenzioni di denominazione delle chiavi primarie
- 22. Denominazione delle chiavi primarie "id" vs "something_id" in SQL
- 23. Perché utilizzare più colonne come chiavi primarie (chiave primaria composta)
- 24. come riutilizzare le chiavi primarie cancellate in mysql?
- 25. Progettazione database e l'utilizzo di chiavi primarie non numeriche
- 26. Indici e l'utilizzo di chiavi primarie come indici in MySQL
- 27. Rails: posso utilizzare riferimenti polimorfici con chiavi primarie non interi?
- 28. Utilizzo di GUID nelle chiavi primarie/Indici corretti
- 29. come ottenere i nomi delle colonne delle chiavi primarie per una determinata tabella?
- 30. Non ci sono chiavi primarie o candidato nella tabella di riferimento
posso chiedere, perché vorresti fare una cosa del genere? –
@ JonathanOng Perché vorrei aggiungere alcuni indici in seguito, e sembra che mysql possa fare qualcosa del genere. – Determinant