PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Doctrine2 nie ustawia sekwencji jako domyślnej dla kolumny id (postgres)

Z dobrze instrukcja :

Sugerują AUTO dla maksymalnej przenośności:

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

To powinno stworzyć i połączyć sekwencję dla ciebie. Alternatywą byłoby poproszenie o serial kolumna przy użyciu IDENTITY strategia:

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

Ten powinien utworzyć Twój id kolumna jako typ serial a PostgreSQL utworzy sekwencję i ustawi dla Ciebie domyślną wartość.

Dokumentacja wskazuje, że to, co robisz, powinno działać, ale dokumentacja zwykle przedstawia tylko uproszczoną wersję rzeczywistości.

Spróbuj użyć strategy="AUTO" . Jeśli to nie zadziała, wypróbuj strategy="IDENTITY" .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak Trunc() działa w PostgreSQL

  2. Kompilacja PL/Proxy z PostgresPlus Advance Server 9.1

  3. Zapętlaj tabele z PL/pgSQL w Postgres 9.0+

  4. Rozmyte dopasowanie ciągu w SQL

  5. IntegrityError:naruszenie klucza obcego po usunięciu