Nhập dữ liệu vào database nhưng bị xung đột

Em vừa học được vài buổi nên chưa rõ ràng lắm. Nhờ mọi người giải đáp giúp em , Em cảm ơn ạ.
Bài code này , em đã điền dữ liệu cho table GIAOVIEN rồi , nhưng sao khi điền cho các table khác, lại bị lỗi xung đột ạ, em chưa hiểu cái này lắm.
Lần đầu tiên e vào hỏi ở đây, chưa biết cách up code, mong anh chị chỉ dạy ạ,

:

USE MASTER
GO

CREATE DATABASE QLDT
GO

USE QLDT
GO

-- TAO BANG --

CREATE TABLE THAMGIADT
(
        MAGV       NVARCHAR (50),
	MADT       NVARCHAR (50),
	STT        INT,
	PHUCAP     FLOAT,
	KETQUA     NVARCHAR (50)

	CONSTRAINT PK_THAMGIADT PRIMARY KEY (MAGV, MADT, STT ),

)
GO

CREATE TABLE KHOA
(
   MAKHOA       NVARCHAR (50),
   TENKHOA      NVARCHAR (50),
   NAMTL        INT,
   PHONG        NVARCHAR (50),
   DIENTHOAI    INT,
   TRUONGKHOA   NVARCHAR (50),
   NGAYNHANCHUC DATETIME,

   CONSTRAINT PK_KHOA PRIMARY KEY (MAKHOA),

)
GO

CREATE TABLE BOMON
(
    MABM         NVARCHAR (50),
	TENBM        NVARCHAR (50),
	PHONG        NVARCHAR (50),
	DIENTHOAI    INT,
	TRUONGBOMON  NVARCHAR (50),
	MAKHOA       NVARCHAR (50),
	NGAYNHANCHUC DATETIME

	CONSTRAINT PK_BOMON PRIMARY KEY (MABM),

)
GO

-- THAY ĐỔI KIỂU DỮ LIỆUCỘT--
-- ALTER TABLE TÊN BẢNG
-- ALTER COLUMN TÊN CỘT KIỂU DỮ LIỆU


CREATE TABLE CONGVIEC
(
   MADT       NVARCHAR (50),
   SOTT       INT,
   TENCV      NVARCHAR (50),
   NGAYBD     DATETIME,
   NGAYKT     DATETIME

   CONSTRAINT PK_CONGVIEC PRIMARY KEY (MADT, SOTT),

)
GO

CREATE TABLE GIAOVIEN
(
        MAGV      NVARCHAR (50),
	HOTEN     NVARCHAR (50),
	LUONG     FLOAT,
	PHAI      NVARCHAR (50),
	NGSINH    DATETIME,
	DIACHI    NVARCHAR (50),
	GVQLCM    NVARCHAR (50),
	MABM      NVARCHAR (50)

	CONSTRAINT PK_GIAOVIEN PRIMARY KEY (MAGV),

)
GO

CREATE TABLE GV_DT
(
   MAGV       NVARCHAR (50),
   DIENTHOAI  INT

   CONSTRAINT PK_GV_DT PRIMARY KEY (MAGV, DIENTHOAI ),

)
GO

CREATE TABLE DETAI
(
   MADT       NVARCHAR (50),
   TENDT      NVARCHAR (50),
   CAPQL      NVARCHAR (50),
   KINHPHI    FLOAT,
   NGAYBD     DATETIME,
   NGAYKT     DATETIME,
   MACD       NVARCHAR (50),
   GVCNDT     NVARCHAR (50)

   CONSTRAINT PK_DETAI PRIMARY KEY ( MADT ),

)
GO


CREATE TABLE CHUDE
(
   MACD      NVARCHAR (50),
   TENCD     NVARCHAR (50)

   CONSTRAINT PK_CHUDE PRIMARY KEY (MACD ),

)
GO

CREATE TABLE NGUOITHAN
(
   MAGV     NVARCHAR (50),
   TEN      NVARCHAR (50),
   NGSINH   DATETIME,
   PHAI     NVARCHAR (50)

   CONSTRAINT PK_NGUOITHAN PRIMARY KEY (MAGV, TEN ),

)
GO

--------------- TAO KHOA NGOAI------------
-- Tao khoa ngoai tham chieu den bang GIAOVIEN --

ALTER TABLE GV_DT
ADD CONSTRAINT FK_GV_GV_DT FOREIGN KEY ( MAGV ) REFERENCES GIAOVIEN (MAGV);
GO

-- xóa khóa ngoại
--ALTER TABLE GV_DT
--DROP CONSTRAINT FK_MAGV
--GO


ALTER TABLE NGUOITHAN
ADD CONSTRAINT FK_GV_NGUOITHAN FOREIGN KEY (MAGV ) REFERENCES GIAOVIEN (MAGV);
GO

ALTER TABLE THAMGIADT
ADD CONSTRAINT FK_GV_THAMGIADT FOREIGN KEY (MAGV ) REFERENCES GIAOVIEN (MAGV );
GO

ALTER TABLE GIAOVIEN
ADD CONSTRAINT FK_GV_GIAOVIEN FOREIGN KEY ( GVQLCM ) REFERENCES GIAOVIEN (MAGV);
GO


ALTER TABLE BOMON
ADD CONSTRAINT FK_GV_BOMON FOREIGN KEY (TRUONGBOMON) REFERENCES GIAOVIEN (MAGV);
GO

ALTER TABLE KHOA
ADD CONSTRAINT FK_GV_KHOA FOREIGN KEY (TRUONGKHOA ) REFERENCES GIAOVIEN (MAGV);
GO

ALTER TABLE DETAI
ADD CONSTRAINT FK_GV_DETAI FOREIGN KEY ( GVCNDT ) REFERENCES GIAOVIEN (MAGV );
GO

-- Tao khoa ngoai tham chieu den bang BOMON --

ALTER TABLE GIAOVIEN
ADD CONSTRAINT FK_BM_GIAOVIEN FOREIGN KEY ( MABM ) REFERENCES BOMON ( MABM);
GO

-- tao khoa ngoai tham chieu den bang KHOA --

ALTER TABLE BOMON
ADD CONSTRAINT FK_K_BOMON FOREIGN KEY ( MAKHOA ) REFERENCES KHOA ( MAKHOA );
GO

-- Tao khoa ngoai tham chieu den bang CONGVIEC

ALTER TABLE THAMGIADT
ADD CONSTRAINT FK_CV_THAMGIADT FOREIGN KEY (MADT, STT) REFERENCES CONGVIEC (MADT,SOTT );
GO

-- Tao khoa ngoai tham chieu den bang DETAI --

ALTER TABLE CONGVIEC
ADD CONSTRAINT FK_DT_CONGVIEC FOREIGN KEY ( MADT ) REFERENCES DETAI ( MADT);
GO

-- Tao khoa ngoai tham chieu den bang CHUDE --

ALTER TABLE DETAI
ADD CONSTRAINT FK_CD_DETAI FOREIGN KEY (MACD ) REFERENCES CHUDE (MACD );
GO

 -----------------

--    Tao rang buoc mien gia tri --

ALTER TABLE GIAOVIEN
ADD CONSTRAINT CK_GV_PHAI CHECK ( PHAI IN (N'Nam', N'Nữ'));
GO

ALTER TABLE NGUOITHAN
ADD CONSTRAINT CK_NGUOITHAN_PHAI CHECK ( PHAI IN (N'Nam', N'Nữ' ));
GO



--  KIEM TRA DR --


-- NHẬP DỮ LIỆU CHO BẢNG--
-- Cái nào đứng 1 mình thì nhập chiếu, cái nào có tham chiếu thì nhập sau --
-- Khi nhập dữ liệu, khóa ngoại mang giá trị NULL ( điền vô sẽ lỗi ).

-- Nhập dữ liệu cho bảng  CHUDE  --

INSERT INTO CHUDE ( MACD, TENCD)
VALUES            (N'NCPT', N'Quản lí giáo dục');
GO


-- Nhập dữ liệu cho bảng GIAOVIEN --

INSERT INTO GIAOVIEN ( MAGV, HOTEN, LUONG, PHAI, NGSINH, DIACHI, GVQLCM, MABM )
VALUES               ( '00025', N'Nguyễn Văn A', 2500.0, N'NAM', '2000/05/20', N'DAI LANH',NULL ,NULL );
GO


INSERT INTO GIAOVIEN (MAGV, HOTEN, LUONG, PHAI, NGSINH, DIACHI, GVQLCM, MABM)
VALUES               ('00052', N'Nguyễn Văn B' , 20.5 , N'Nam', '2004-04-30' , N'Đại lộc' , NULL, NULL );
GO

INSERT INTO GIAOVIEN (MAGV, HOTEN, LUONG, PHAI, NGSINH, DIACHI, GVQLCM, MABM)
VALUES               ('20000', N'HÀ', 1000.0 , N'NỮ' , '2004-4-24', N'ĐẠI QUANG', NULL , NULL);
GO

INSERT INTO GIAOVIEN (MAGV, HOTEN, LUONG, PHAI, NGSINH, DIACHI, GVQLCM, MABM)
VALUES               ('2019', N'HÀ', 1000.0 , N'NỮ' , '2004-4-24', N'ĐẠI QUANG', NULL , NULL);
GO

INSERT INTO GIAOVIEN (MAGV, HOTEN, LUONG, PHAI, NGSINH, DIACHI, GVQLCM, MABM)
VALUES               ('2020', N'HÀ', 1000.0 , N'NỮ' , '2004-4-24', N'ĐẠI QUANG', NULL , NULL);
GO

SELECT * FROM DETAI

--ERR Nhập dữ liệu cho bảng GV_DT    --

INSERT INTO GV_DT (MAGV, DIENTHOAI)
VALUES            ('20002' , 0964444444);
GO


INSERT INTO GV_DT (MAGV, DIENTHOAI)
VALUES            ( '2022', '374939');
GO

-- Err Nhập dữ liệu cho bảng NGUOITHAN   --

INSERT INTO NGUOITHAN (MAGV, TEN, NGSINH, PHAI)
VALUES                ( '0012', N'LÊ VĂN ', '2019-08-29', N'NAM');
GO

-- ERR Nhập dữ liệu cho bảng  KHOA  --

INSERT INTO KHOA ( MAKHOA, TENKHOA, NAMTL, PHONG, DIENTHOAI, TRUONGKHOA, NGAYNHANCHUC )
VALUES           (N'AB', N'TIN HỌC', 1960, N'ABE', 0938333333, N'D333', '2018-03-22'); 
GO

-- ERR Nhập dữ liệu cho bảng BOMON   --

INSERT INTO BOMON (MABM,TENBM, PHONG, DIENTHOAI, TRUONGBOMON, MAKHOA, NGAYNHANCHUC)
VALUES            (N'CNSH', N'Công nghệ sinh học', N'B3404', '12345676', NULL , N'ABCD', '2020-02-20' );
GO

-- Nhập dữ liệu cho bảng DETAI   --

INSERT INTO DETAI (MADT, TENDT, CAPQL, KINHPHI, NGAYBD, NGAYKT, MACD, GVCNDT)
VALUES            (N'1234567', N'HT quản lí', N' ĐHQG', 10., '2007-10-20' , ' 2008-10-20', NULL, NULL);
GO


-- Err Nhập dữ liệu cho bảng CONGVIEC   --

INSERT INTO CONGVIEC ( MADT, SOTT, TENCV, NGAYBD, NGAYKT )
VALUES               ( N'1340', 1 , N' Nghiên cứu khoa học', '2007-04-23', '2008-04-23');
GO


-- ERR Nhập dữ liệu cho bảng  THAMGIADT  --

INSERT INTO THAMGIADT ( MAGV, MADT, STT, PHUCAP, KETQUA)
VALUES                ('100', N'200', 5 , 245.567 , NULL);
GO

Mình nghĩ bạn nên kiểm tra lại các cái khóa ngoại của bạn minh cũng vừa thử trên Sql server thì nó báo xung đột khóa ngoại ( Foreign Key)

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?