PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Doctrine2 setzt die Sequenz für die ID-Spalte nicht auf den Standardwert (postgres)

Aus dem fein Handbuch :

Sie schlagen AUTO vor für maximale Portabilität:

/**
 * @Id
 * @Column(type="integer", nullable=false)
 * @GeneratedValue
 */

Das sollte eine Sequenz für Sie erstellen und verdrahten. Eine Alternative wäre, nach einer serial zu fragen Spalte mit dem IDENTITY Strategie:

/**
 * @Id
 * @Column(type="integer", nullable=false)
 * @GeneratedValue(strategy="IDENTITY")
 */

Dieser sollte Ihre id erstellen Spalte als Typ serial und PostgreSQL erstellt die Sequenz und richtet den Standardwert für Sie ein.

Die Dokumentation weist darauf hin, dass das, was Sie tun, funktionieren sollte, aber die Dokumentation liefert normalerweise nur eine vereinfachte Version der Realität.

Versuchen Sie es mit strategy="AUTO" . Wenn das nicht funktioniert, versuchen Sie es mit strategy="IDENTITY" .