sql >> Databáze >  >> RDS >> PostgreSQL

Jak mohu použít UUID v SQLAlchemy?

Dialekt postgres sqlalchemy podporuje sloupce UUID. To je snadné (a otázka je konkrétně postgres) – nechápu, proč jsou všechny ostatní odpovědi tak složité.

Zde je příklad:

from sqlalchemy.dialects.postgresql import UUID
from flask_sqlalchemy import SQLAlchemy
import uuid

db = SQLAlchemy()

class Foo(db.Model):
    id = db.Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4)

Dávejte pozor, abyste nepropásli callable uuid.uuid4 do definice sloupce místo volání samotné funkce pomocí uuid.uuid4() . Jinak budete mít stejnou skalární hodnotu pro všechny instance této třídy. Více podrobností zde:

Skalární, Python callable nebo ColumnElement výraz představující výchozí hodnotu pro tento sloupec, který bude vyvolán po vložení, pokud tento sloupec není jinak specifikován v klauzuli VALUES vložení.



  1. Připravené prohlášení o Postgresql in Rails

  2. Získat názvy sloupců tabulky v MySQL?

  3. Může pole tabulky obsahovat spojovník?

  4. Zpráva o databázi Open Source za rok 2019:Nejlepší databáze, veřejný cloud vs. On-Premise, Polyglot Persistence