2010-06-25 2 views
2

Получив очень хорошую коррекцию от нечеткого леденца, я поменял свой код, чтобы создать инструкцию insert для каждой строки данных. Это код, который я вошел:Попытка правильно вставить данные

INSERT DEPARTMENTS 
(Department_Id,Department_Name,Manager_Id,Location_Id) 
VALUES 
('D0001','Think Tank',NULL,'L0001') 
GO 

INSERT DEPARTMENTS 
(Department_Id,Department_Name,Manager_Id,Location_Id) 
VALUES 
('D0002','Creators',NULL,'L0002') 
GO 

INSERT DEPARTMENTS 
(Department_Id,Department_Name,Manager_Id,Location_Id) 
VALUES 
('D0003','Marketers',NULL,'L0003') 
GO 

INSERT EMPLOYEES 
(Employee_Id,First_Name,Last_Name,Email,PhoneNumber,Hire_Date,Manager_ID,Department_Id) 
VALUES 
('E0001','Joe','Blow',NULL,NULL,2010/06/25,NULL,NULL) 
GO 

INSERT EMPLOYEES 
(Employee_Id,First_Name,Last_Name,Email,PhoneNumber,Hire_Date,Manager_ID,Department_Id) 
VALUES 
('E0002','John','Doe',NULL,NULL,2010/06/25,NULL,NULL) 
GO 

INSERT EMPLOYEES 
(Employee_Id,First_Name,Last_Name,Email,PhoneNumber,Hire_Date,Manager_ID,Department_Id) 
VALUES 
('E0003','Sue','Happy',NULL,NULL,2010/06/25,NULL,NULL) 
GO 

INSERT EMPLOYEES 
(Employee_Id,First_Name,Last_Name,Email,PhoneNumber,Hire_Date,Manager_ID,Department_Id) 
VALUES 
('E0004','Tina','Turner',NULL,NULL,2010/06/25,NULL,NULL) 
GO 

INSERT EMPLOYEES 
(Employee_Id,First_Name,Last_Name,Email,PhoneNumber,Hire_Date,Manager_ID,Department_Id) 
VALUES 
('E0005','Ike','Turner',NULL,NULL,2010/06/25,NULL,NULL) 
GO 

INSERT EMPLOYEES 
(Employee_Id,First_Name,Last_Name,Email,PhoneNumber,Hire_Date,Manager_ID,Department_Id) 
VALUES 
('E0006','Big','Bird',NULL,NULL,2010/06/25,NULL,NULL) 
GO 

INSERT EMPLOYEES 
(Employee_Id,First_Name,Last_Name,Email,PhoneNumber,Hire_Date,Manager_ID,Department_Id) 
VALUES 
('E0007','Speedy','Gonzales',NULL,NULL,2010/06/25,NULL,NULL) 
GO 

Однако это были сообщения об ошибках, которые я получил:

Msg 547, Level 16, State 0, Line 1 
The INSERT statement conflicted with the FOREIGN KEY constraint "FK__DEPARTMEN__Locat__09DE7BCC". The conflict occurred in database "Final_Project", table "dbo.LOCATIONS", column 'Location_ID'. 
The statement has been terminated. 
Msg 547, Level 16, State 0, Line 2 
The INSERT statement conflicted with the FOREIGN KEY constraint "FK__DEPARTMEN__Locat__09DE7BCC". The conflict occurred in database "Final_Project", table "dbo.LOCATIONS", column 'Location_ID'. 
The statement has been terminated. 
Msg 547, Level 16, State 0, Line 2 
The INSERT statement conflicted with the FOREIGN KEY constraint "FK__DEPARTMEN__Locat__09DE7BCC". The conflict occurred in database "Final_Project", table "dbo.LOCATIONS", column 'Location_ID'. 
The statement has been terminated. 
Msg 206, Level 16, State 2, Line 2 
Operand type clash: int is incompatible with date 
Msg 206, Level 16, State 2, Line 2 
Operand type clash: int is incompatible with date 
Msg 206, Level 16, State 2, Line 2 
Operand type clash: int is incompatible with date 
Msg 206, Level 16, State 2, Line 2 
Operand type clash: int is incompatible with date 
Msg 206, Level 16, State 2, Line 2 
Operand type clash: int is incompatible with date 
Msg 206, Level 16, State 2, Line 2 
Operand type clash: int is incompatible with date 
Msg 206, Level 16, State 2, Line 2 
Operand type clash: int is incompatible with date 

Я не буду делать ту же ошибку, не сумев сразу ответить на решения. Я не знал, что проверка зеленого галочка означает, что ответ был удовлетворительным.

Спасибо за любую помощь

ответ

2

У вас есть два различных типа ошибки.

Во-первых, вы нарушаете ограничение внешнего ключа. Есть три способа решить эту проблему:

  • Узнайте, что правильный ключ должен быть (например, запрашивая LOCATIONS таблицу) и изменить свой внешний ключ к правильному значению.
  • Вставьте недостающий ряд в таблицу LOCATIONS перед вставкой в ​​DEPARTMENTS.
  • Удалите ограничение (это, вероятно, плохая идея).

Вторая ошибка проще - вы неправильно отформатировали свою дату. Это должна быть строка.

'2010-06-25' 

Полный запрос:

INSERT EMPLOYEES 
(Employee_Id,First_Name,Last_Name,Email,PhoneNumber,Hire_Date,Manager_ID,Department_Id) 
VALUES 
('E0001','Joe','Blow',NULL,NULL,'2010-06-25',NULL,NULL) 
+0

"• Удалите ограничение (это, вероятно, плохая идея)." Да, это путь наименьшего сопротивления и почти всегда самое худшее, что вы могли бы сделать, чтобы исправить проблему. Всегда есть причина для ограничения, устраняя их, потому что они неудобны для вас - это гарантировать проблемы целостности данных. – HLGEM

+0

Я внес изменения в неправильную дату. Тем не менее, я пытаюсь исправить ошибку ограничения. – getbruce

1

1) нет никаких записей с заданным LocationIDs в таблице Location

2) вам необходимо процитировать значение даты

+0

Я сделал изменения в неправильную дату. Тем не менее, я пытаюсь исправить ошибку ограничения. – getbruce

+0

Благодарим вас за помощь – getbruce

0
  • Есть ли ограничение внешнего ключа между Департаментом и местоположением. Если это так, то для вставки разделителя требуется существующее местоположение. Место связано с отделом LOCATION_ID

  • Timestamps синтаксис должен быть строкой '12/12/2010' не без «-signs

+0

Я внес изменения в неправильную дату. Тем не менее, я пытаюсь исправить ошибку ограничения. – getbruce

Смежные вопросы