0

こんにちは私はAM1808のデータベース管理にsqlite3を使用しています。MilkRateChartEditDetailという名前の新しいテーブルを作成しました。

const char *SQL_CREATE_MILKRATECHARTDETAILEDITTABLE   = 
"CREATE TABLE IF NOT EXISTS MilkRateChartEditDetail ( \
    MilkRateChartEditDetailId   INTEGER, \
    MilkRateChartId         INTEGER \
        REFERENCES MilkRateChart(MilkRateChartId) \
        ON UPDATE RESTRICT ON DELETE RESTRICT, \
    EffectiveDate           DATE, \
    EffectiveShift          UNSIGNED TINYINT, \
    MilkType                UNSIGNED TINYINT, \
    RCD_RateChartId         UNSIGNED INT,\
    SocietyCode             STRING, \
    RateType                STRING, \
    FAT                     FLOAT, \
    LRCLR                   FLOAT, \
    SNF                     FLOAT, \
    Solid                   FLOAT, \
    Rate                    FLOAT, \
    NewRate                 FLOAT, \
    UpdatedBy               INTEGER \
        REFERENCES UserMaster(UsermasterId) \
        ON UPDATE RESTRICT ON DELETE RESTRICT, \
    UpdatedOn               DATE, \
    FlagGSM                 UNSIGNED TINYINT, \
    FlagUSB                 UNSIGNED TINYINT, \
    PRIMARY KEY (MilkRateChartEditDetailId))";

次のクエリを使用して、テーブルにデータを挿入しようとしています。

const char *INSERT_MILKRATECHARTEDITDETAILTABLE =
    "INSERT INTO MilkRateChartEditDetail \
         (MilkRateChartEditDetailId,MilkRateChartId, \
         EffectiveDate,EffectiveShift,MilkType, \
         RCD_RateChartId,SocietyCode,RateType, \
         FAT,LRCLR,SNF,Solid,Rate,NewRate, \
         UpdatedBy,UpdatedOn,FlagGSM,FlagUSB) \
     VALUES(NULL,?,?,?,?,?,?,?,?,?,?,?,?,?,NULL,?,?,?)";

私のデータは:

RateChartId : 1
EffectiveDate : 10-12-2012
Shift : E
RateType : FAT
MilkRateChartId : 30
FAT : 11.100000
SNF : 0.000000
Solid : 0.000000
CLR : 0.000000
Updatedby : 1
MilkType : C
Rate : 0.000000
NewRate : 0.000000

エラーが発生しました:

MILKRATECHARTEDITDETAILTABLEを挿入、エントリ:「制約に失敗しました」

何が問題なのかわかりませんか?どうすればこれから抜け出すことができますか?

4

1 に答える 1

0

いくつかの外部キー(略してFK)制約を設定し、主キー制約もあります。

同じ主キー()でレコードを挿入しようとしている場合、または外部テーブルに存在しないMilkRateChartEditDetailIdFK(MilkRateChartIdまたは)の値を使用している場合は、このエラーメッセージが表示されます。UpdatedBy

解決策は、これらのFKとPKが適切に使用されているかどうかをより注意深く調べるか、それらを削除することです。

于 2013-02-22T07:21:59.027 に答える