0

postgres データベースにデータを入力し、すべての制約を適用しました。すべてのテーブルで Cake Bakery を実行し、テストを開始しました。このエラーが発生しました:

エラー: SQLSTATE[23505]: 一意の違反: 7 エラー: 重複するキー値が一意の制約 "fasciculos_pkey1" に違反しています 詳細: キー (id)=(7) は既に存在します。

SQL クエリ:

INSERT INTO "xconv2"."fasciculos" ("created", "user_id", "revista_id", "volume", "issue", "svol", "snum", "issuedate", "scheme", "reftype", "cliente_id"、"output_packtype"、"変更された") VALUES ('now()'、4、144、'4'、'4'、'4'、'4'、'4'、'4'、'4 ', 1, '/var/www', '2013-03-25')

pk (curr_val = 545) には、実際にはデフォルトでは null ではなく一意の制約がありますが、add.ctp を使用して新しいレコードを追加しようとすると、cake は PK 用に作成されたシーケンスの次の値を考慮しません。最初からやり直すようです...これはキャッシュの問題だと思いますが、よくわかりません。

何か助けはありますか?

4

1 に答える 1

1

いくつかのこと:

  • SQL ステートメントにキー 7 または 545 がありません。では、これらの値はどこから来るのでしょうか?
  • 列には、NOW() 関数の値ではなく、文字列createdとして「now()」が入力されます。PHPコードで適切な日時を入力してください(通常はうまくいきます)。date('Y-m-d H:i:s')

とにかく、ループ内にレコードを挿入する場合、または同じモデルの複数のレコードを挿入する場合はcreate()、モデルを呼び出すことを忘れないでください。そうしないと、ID が同じになります。

于 2013-03-26T00:03:18.207 に答える