0
文字列と日付に固有の制約を持つPostgreSQLデータベースに挿入するとき、文字列部分の完全一致は使用されていません。以下に示すように、「AA」、「2010-01-04」の組み合わせをDBに挿入しようとすると、すでに存在する2010-01-04の重複した違反が発生します。PostgreSQLのユニーク制約が完全一致を使用していません
INSERT INTO orats_opt
(ticker,dates,stockpx,iv30,iv60,iv90,m1atmiv,m1dtex,m2atmiv,m2dtex,m3atmiv,m3dtex,m4atmiv,m4dtex,slope,deriv,slope_inf,deriv_inf,dclsHV10,dclsHV20,dclsHV60,dclsHV120,dclsHV252,dORHV10,dORHV20,dORHV60,dORHV120,dORHV252)
VALUES ('AA','2010-01-04
+00'::date,16.63,47.68,43.25,43.16,52.34,12.0,43.28,47.0,43.15,103.0,43.08,194.0,2.28,0.03878,2.323,0.05939,45.21,47.01,45.15,47.52,71.41,41.94,49.32,44.63,47.31,60.38)
ERROR: duplicate key value violates unique constraint "unique_ticker_date" DETAIL: Key (ticker, dates)=(A, 2010-01-04) already exists. ********** Error ********** ERROR: duplicate key value violates unique constraint "unique_ticker_date" SQL state: 23505 Detail: Key (ticker, dates)=(A, 2010-01-04) already exists.
をしてくださいと '' orats_opt'と対応する一意制約(またはインデックス)のためtable'文を作成し、完全なを追加します。試してくださいそれを修正するには
。 **あなたの質問。 **は**コメントでコードや追加情報を追加しないでください –
テーブル構造をお願いします。psqls '\ d + orats_opt' –
おそらく' ticker'は 'char(1)'と定義されています。 –