sql >> データベース >  >> RDS >> PostgreSQL

Doctrine2はid列のデフォルトにシーケンスを設定しません(postgres)

    fineからマニュアル

    彼らはAUTOを提案しています 最大限の移植性のために:

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

    それはあなたのためにシーケンスを作成して配線する必要があります。別の方法は、serialを要求することです。 IDENTITYを使用した列 戦略:

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

    これでidを作成する必要があります タイプserialとしての列 PostgreSQLがシーケンスを作成し、デフォルト値を設定します。

    ドキュメントは、あなたがしていることがうまくいくはずだと示していますが、ドキュメントは通常、現実の単純化されたバージョンしか提供していません。

    strategy="AUTO"を使用してみてください 。それでも問題が解決しない場合は、strategy="IDENTITY"を試してください 。



    1. LaravelEloquentで名前付きパラメーターを使用できますか

    2. MySQLでランダムな文字列を生成します

    3. pgBadgerを使用したPostgreSQLログ分析

    4. SQLiteデータベースをCSVファイルにエクスポート