Hỏi đáp

Chia sẻ kiến thức, cùng nhau phát triển

Lỗi khóa ngoại trong SQL

16:54 14-07-2021 2.224 lượt xem 1 bình luận 13:26 15-07-2021

Chào anh Long, anh cho em hỏi: trong CSDL, em tạo ra 1 bảng HANGHOA với IDDANHMUC cho nó tự động tăng, vậy mà sao khi thêm dữ liệu vào nó lại báo lỗi khóa ngoại của IDDANHMUC. Có cách nào giải quyết không anh? Em cảm ơn anh

CREATE TABLE DANHMUC
(
	ID INT IDENTITY PRIMARY KEY,
	TENDANHMUC NVARCHAR(40),
)
GO
CREATE TABLE HANGHOA
(
	ID VARCHAR(20) PRIMARY KEY,
	TENHANG NVARCHAR(40),
	IDDANHMUC INT IDENTITY,
	IDNHACUNGCAP VARCHAR(20),
	HANSUDUNG DATETIME,
	FOREIGN KEY(IDDANHMUC) REFERENCES dbo.DANHMUC(ID),
	FOREIGN KEY(IDNHACUNGCAP) REFERENCES dbo.NHACUNGCAP(ID)
)
GO
SET DATEFORMAT DMY
INSERT dbo.HANGHOA
(
    ID,
    TENHANG,
    IDNHACUNGCAP,
    HANSUDUNG
)
VALUES
(   '6438689',   -- ID - varchar(20)
	N'Laptop HP Pravillion', -- TENHANG - nvarchar(40)
    '2751981', -- IDNHACUNGCAP - varchar(20)
    '16/09/2033'  -- HANSUDUNG - datetime
    )
INSERT dbo.HANGHOA
(
    ID,
    TENHANG,
    IDNHACUNGCAP,
    HANSUDUNG
)
VALUES
(   '1084358',   -- ID - varchar(20)
	N'Chảo chiên không dầu', -- TENHANG - nvarchar(40)
    '2887796638', -- IDNHACUNGCAP - varchar(20)
    '16/09/2032' -- HANSUDUNG - datetime
    )
INSERT dbo.HANGHOA
(
    ID,
    TENHANG,
    IDNHACUNGCAP,
    HANSUDUNG
)
VALUES
(   '33333333',   -- ID - varchar(20)
	N'Kem chống nắng', -- TENHANG - nvarchar(40)
    '899038', -- IDNHACUNGCAP - varchar(20)
    NULL -- HANSUDUNG - datetime
    )
INSERT dbo.HANGHOA
(
    ID,
    TENHANG,
    IDNHACUNGCAP,
    HANSUDUNG
)
VALUES
(   '2987106',   -- ID - varchar(20)
	N'Bếp điện hồng ngoại', -- TENHANG - nvarchar(40)
    '98768906', -- IDNHACUNGCAP - varchar(20)
    '27/5/2031' -- HANSUDUNG - datetime
    )
GO
The statement has been terminated.
Msg 547, Level 16, State 0, Line 313
The INSERT statement conflicted with the FOREIGN KEY constraint "FK__HANGHOA__IDDANHM__31EC6D26". The conflict occurred in database "QUANLYKHO", table "dbo.DANHMUC", column 'ID'.
The statement has been terminated.
Msg 547, Level 16, State 0, Line 326
The INSERT statement conflicted with the FOREIGN KEY constraint "FK__HANGHOA__IDDANHM__31EC6D26". The conflict occurred in database "QUANLYKHO", table "dbo.DANHMUC", column 'ID'.
The statement has been terminated.

 

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
K9 SuperAdmin, KquizAdmin, KquizAuthor đã bình luận 14:33 16-07-2021

id danh mục bên HangHoa bạn bỏ identity đi nha.

Câu hỏi mới nhất