会計ソフトウェアのようなバウチャー入力システムを作成します
しかし、私はエラーメッセージを受け取ります
Msg 547, Level 16, State 0, Line 1
The INSERT statement conflicted with the FOREIGN KEY constraint "Payment_Voucher_All_Voucher_List". The conflict occurred in database "Accounting12", table "dbo.Payment_Voucher".
The statement has been terminated.
誰かが私のデータベース
とデータベーススキーマのどこが悪いのか教えてください
CREATE TABLE [dbo].[Receipt_Voucher] (
[Id] INTEGER IDENTITY(90000000,1) NOT NULL,
[Voucher_No] VARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[Date] DATE,
[Dr_Account] INTEGER,
[Dr_Amount] MONEY,
[Cr_Account] INTEGER,
[Cr_Amount] MONEY,
[voucher_type] VARCHAR(40) NOT NULL,
CONSTRAINT [PK_Receipt_Voucher] PRIMARY KEY CLUSTERED ([Voucher_No], [voucher_type])
)
GO
/* ---------------------------------------------------------------------- */
/* Add table "Payment_Voucher" */
/* ---------------------------------------------------------------------- */
CREATE TABLE [dbo].[Payment_Voucher] (
[Id] INTEGER IDENTITY(90000000,1) NOT NULL,
[Voucher_No] VARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[Date] DATE,
[Dr_Account] INTEGER,
[Dr_Amount] MONEY,
[Cr_Account] INTEGER,
[Cr_Amount] MONEY,
[voucher_type] VARCHAR(40) NOT NULL,
CONSTRAINT [PK_Payment_Voucher] PRIMARY KEY CLUSTERED ([Voucher_No], [voucher_type])
)
GO
/* ---------------------------------------------------------------------- */
/* Add table "All_Voucher_List" */
/* ---------------------------------------------------------------------- */
CREATE TABLE [dbo].[All_Voucher_List] (
[Voucher_No] VARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[voucher_type] VARCHAR(40) NOT NULL,
CONSTRAINT [PK_Voucher] PRIMARY KEY CLUSTERED ([Voucher_No], [voucher_type])
)
GO
/* ---------------------------------------------------------------------- */
/* Foreign key constraints */
/* ---------------------------------------------------------------------- */
ALTER TABLE [dbo].[All_Voucher_List] ADD CONSTRAINT [Receipt_Voucher_All_Voucher_List]
FOREIGN KEY ([Voucher_No], [voucher_type]) REFERENCES [dbo].[Receipt_Voucher] ([Voucher_No],[voucher_type])
GO
ALTER TABLE [dbo].[All_Voucher_List] ADD CONSTRAINT [Payment_Voucher_All_Voucher_List]
FOREIGN KEY ([Voucher_No], [voucher_type]) REFERENCES [dbo].[Payment_Voucher] ([Voucher_No],[voucher_type])
GO
領収書に記入する
INSERT INTO dbo.Receipt_Voucher
( Voucher_No ,
Date ,
Dr_Account ,
Dr_Amount ,
Cr_Account ,
Cr_Amount ,
voucher_type
)
VALUES ( '0001' , -- Voucher_No - varchar(50)
'2013-03-13 08:15:28' , -- Date - date
5 , -- Dr_Account - int
500 , -- Dr_Amount - money
2 , -- Cr_Account - int
500 , -- Cr_Amount - money
'2' -- voucher_type - varchar(40)
)
All_Voucher_Listに入力します
INSERT INTO dbo.All_Voucher_List
( Voucher_No, voucher_type )
VALUES ( '0001', -- Voucher_No - varchar(50)
'2' -- voucher_type - varchar(40)
)
しかし、いくつかのエラーがあります
Msg 547, Level 16, State 0, Line 1
The INSERT statement conflicted with the FOREIGN KEY constraint "Payment_Voucher_All_Voucher_List". The conflict occurred in database "Accounting12", table "dbo.Payment_Voucher".
The statement has been terminated.