2017-05-29 250 views
0

在SQL Server 2012管理工作室中,我尝试了很多时间来创建一些表并在表中插入一些值,但这里的问题与表关联:Msg 547,INSERT语句与FOREIGN KEY约束冲突

INSERT语句冲突与外键约束

的错误:

消息8152,级别16,状态14,行116字符串或比娜ry的数据将被截断为 。

Msg 547,Level 16,State 0,Line 122 INSERT语句与FOREIGN KEY约束“eworkerFK”冲突 。冲突发生在 数据库“7”,表“dbo.member_clup”,列'manager_id'。

该声明已终止。

消息547,级别16,状态0,行128 INSERT语句与FOREIGN KEY约束条件 “SALEDFk”冲突。冲突发生在数据库“7”中,表“dbo.worker”, 列'worker_number'。

谁能帮助我插入正确 表?

CREATE TABLE address 
 
(
 
code_place int, 
 
PLACE_NAME VARCHAR (15), 
 
OUT_israel varchar (15) 
 
CONSTRAINT address1 PRIMARY KEY(code_place) 
 

 
) 
 

 
create table member_clup 
 
(
 
manager_id int, 
 
manager_name varchar(15), 
 
manager_last varchar(12), 
 
phone_num int, 
 
type varchar(10), 
 
CONSTRAINT manager1PK PRIMARY KEY(manager_id) 
 
) 
 

 

 
create table worker 
 
(
 
worker_number int, 
 
worker_name varchar(50), 
 
worker_last varchar(49), 
 
id varchar(9), 
 
type varchar(50), 
 
manager_id int 
 
CONSTRAINT workerPK PRIMARY KEY(worker_number) 
 
CONSTRAINT eworkerFK FOREIGN KEY(manager_id) 
 
REFERENCES member_clup(manager_id) 
 

 
) 
 

 
    CREATE TABLE rooms(
 
    room_number int, 
 
\t floor int, 
 
\t room_type varchar(8) 
 
\t CONSTRAINT roomsKEY PRIMARY KEY(room_number) 
 

 
) 
 

 
CREATE TABLE cars 
 
(
 
cars_number int, 
 
car_type varchar(15), 
 
car_model int, 
 
CONSTRAINT carsPK PRIMARY KEY(cars_number) 
 
) 
 

 
CREATE TABLE tourest(
 
    Cust_number int , 
 
    Cust_name varchar(50), 
 
    cust_lastname varchar(50), 
 
    cust_phone varchar(10), 
 
    code_place int, 
 
    Room_id int, 
 
    Saledby int 
 
    CONSTRAINT tourest1 PRIMARY KEY(Cust_number) 
 
    CONSTRAINT addressFK FOREIGN KEY(code_place) 
 
    REFERENCES address(code_place), 
 
    CONSTRAINT SALEDFk FOREIGN KEY(Saledby) 
 
    REFERENCES worker(worker_number), 
 
    CONSTRAINT roomsFK FOREIGN KEY(Room_id) 
 
    REFERENCES rooms(room_number) 
 
    ) 
 
    CREATE TABLE kesher 
 
(
 
Cust_number int, 
 
cars_number int, 
 
CONSTRAINT custPK1 PRIMARY KEY(Cust_number,cars_number), 
 
CONSTRAINT kesher1FK FOREIGN KEY(Cust_number) 
 
    REFERENCES cars(cars_number), 
 
    CONSTRAINT kesherFK FOREIGN KEY(Cust_number) 
 
    REFERENCES tourest(Cust_number) 
 
) 
 

 
insert into cars VALUES 
 
(100100,'mazda',2002), 
 
(100205,'ford',2017), 
 
(100206,'porch',1998), 
 
(100207,'mazda',2017), 
 
(100208,'opel',2002), 
 
(100209,'mazda',2016), 
 
(100210,'pijuot',2002), 
 
(100211,'mazda',2015), 
 
(100212,'mazda',2010), 
 
(100213,'volvo',2002), 
 
(100215,'ford',20012) 
 

 
insert into rooms VALUES 
 
(100,1,'single'), 
 
(101,1,'double'), 
 
(102,1,'single'), 
 
(103,1,'double'), 
 
(201,2,'signle'), 
 
(202,2,'signle'), 
 
(203,2,'signle'), 
 
(204,2,'signle'), 
 
(300,3,'double'), 
 
(301,3,'double'), 
 
(302,3,'double'), 
 
(303,3,'double'), 
 
(304,3,'signle') 
 

 
insert into address VALUES 
 
(500,'Akko','no'), 
 
(501,'Haifa','no'), 
 
(502,'Nahariya','no'), 
 
(503,'Nataniya','no'), 
 
(504,'carmieal','no'), 
 
(505,'Nahef','no'), 
 
(507,'Nitsrat','no'), 
 
(510,'OUT','yes') 
 

 
insert into member_clup VALUES 
 
(5400,'shmolek','snaa','0525732572','General'), 
 
(5696,'malloc','ali','0525552501','Rooms'), 
 
(5991,'ramada','hassan','0532731212','Rooms & Tips'), 
 
(5210,'meri','yako','0525022572','General Manager') 
 

 
insert into worker 
 
VALUES(1234,'halaa','khaled',1234567,'none',5696), 
 
(2234,'fares','adoon',6542897,'none',5696), 
 
(6670,'halaa','khaled',10,'none',5991), 
 
(2554,'halaa','khaled',5658741,'none',5210), 
 
(9987,'halaa','khaled',1123456,'none',5400) 
 
insert into tourest VALUES 
 
(1510,'moshe','yke','0525732579',500,101,2234), 
 
(1520,'ninar','lait','052655541',500,102,6670), 
 
(1521,'hasan','ahmad','0532578741',501,101,2234), 
 
(1522,'ameer','karm','0545222741',500,104,6670), 
 
(1523,'aliel','sraa','0525771572',504,100,2234), 
 
(1524,'hasa','veto','0525122579',505,303,6670), 
 
(1525,'saed','snaa','05255632579',505,303,2234), 
 
(1526,'yakov','mero','0528132579',502,202,6670), 
 
(1527,'mece','loka','0525962579',502,302,9987), 
 
(1528,'ana','yokaf','0525791179',502,302,9987), 
 
(1529,'lelya','mandlina','0527832579',505,203,9987), 
 
(1530,'mnal','khokha','0525758579',507,204,5991), 
 
(1531,'moka','panana','0525805579',507,200,2234) 
 

 

 
insert into kesher VALUES 
 

 
(1510,100100), 
 
(1520,100209), 
 
(1521,100100), 
 
(1522,100209), 
 
(1523,100206), 
 
(1524,100206), 
 
(1525,100213), 
 
(1526,100206), 
 
(1527,100213), 
 
(1528,100213), 
 
(1529,100209)

回答

0

此代码是简单的调试,你一定能做出来。运行它自己的每条语句并查看其结果。如果失败,则将其拆分为更小的语句并重复。如果你不能分割它,它已经足够小,可以通过视力进行调试,不需要很长时间就可以确定问题。

在调试之前,要知道这一点,从头开始重新启动有时是有用/必要的,因此准备好重新启动脚本。在这种情况下,只有一堆DROP TABLE是必要的,他们将删除表和他们的记录。

您的CREATE TABLE声明工作正常,这是一件事通过。即使你遇到了问题,也要逐个运行它们来调试,而不是一次全部运行。

您的INSERT有问题,是的。对每个INSERT块逐个运行,对于失败的块,将其拆分为单个INSERT语句,每个记录一个,现在您可以分辨哪一行是问题。

即使你引用某些外键冲突问题,我得到了一堆不同的外键问题。仔细检查你提供的代码。另外, 什么声明的顺序是首先运行(,我可以提供我家的三楼,而我甚至没有三楼和二楼?你可以取消预订,你还没有预订?

最后,数据似乎有截断问题,无论表列是否应该更大或记录的值是不正确的,只有你可以告诉。

相关问题