Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Помогите с SQL server 2014  [new]
Aliya19
Member

Откуда:
Сообщений: 2
Помогите, пожалуйста, разобраться с заполнением таблиц
вот сами таблицы
create table Otdel( 
id_otdel numeric(3) primary key, 
name_otdel varchar(60), 
id_sotr numeric(5) 
) 
create table Sotrudnik( 
id_sot numeric(5) primary key, 
FIO_sot varchar(60) , 
dolchnost varchar(60), 
id_otd numeric(3), 
constraint fk_sort_otd foreign key (id_otd) references otdel(id_otdel) 
) 
alter table otdel add constraint fk_otdel_sotr foreign key (id_sotr) references sotrudnik(id_sot) 


вот заполнение, но выдает ошибку
INSERT INTO Sotrudnik (id_sot,FIO_sot, dolchnost) VALUES ( '1','Арсибекова Бэлла Эдуардовна', 'Руководитель Отдела продаж')
INSERT INTO Sotrudnik (id_sot,FIO_sot, dolchnost) VALUES ( '2','Арутюнян Генрик Оганесович', 'Руководитель Планового отдела')
INSERT INTO Sotrudnik (id_sot, FIO_sot, dolchnost) VALUES ('3', 'Ахметов Данил Эдуардович', 'Руководитель Маркетингово отдела')
INSERT INTO Sotrudnik (id_sot, FIO_sot, dolchnost) VALUES ( '4','Батталов Рамиль Маратович', 'Руководитель Финансового отдела')

select * from Sotrudnik
insert into Otdel(id_otdel, id_sotr,name_otdel) values ('1' , '1','Отдел продаж')
insert into Otdel(id_otdel, id_sotr, name_otdel) values ('2' , '2','Плановый отдел')
insert into Otdel(id_otdel, id_sotr, name_otdel) values ('3' , '4','Маркетинговый отдел') 
insert into Otdel(id_otdel, id_sotr, name_otdel) values ('4' , '5','Финансовый отдел')
select * from Otdel


не могу разобраться с внешним ключом

Сообщение 2627, уровень 14, состояние 1, строка 88
Нарушено "PK__Sotrudni__6D6CF461AD2CE1E3" ограничения PRIMARY KEY. Не удается вставить повторяющийся ключ в объект "dbo.Sotrudnik". Повторяющееся значение ключа: (1).

Сообщение было отредактировано: 18 окт 16, 01:29
18 окт 16, 00:44    [19792771]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с SQL server 2014  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37062
Aliya19
не могу разобраться с внешним ключом

Сообщение 2627, уровень 14, состояние 1, строка 88
Нарушено "PK__Sotrudni__6D6CF461AD2CE1E3" ограничения PRIMARY KEY. Не удается вставить повторяющийся ключ в объект "dbo.Sotrudnik". Повторяющееся значение ключа: (1).
Вообще-то не с внешним, а с первичным, который у вас определен как
id_sot numeric(5) primary key


Вы пытаетесь вставить две записи, у которых id_sot = 1.
18 окт 16, 01:33    [19792796]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с SQL server 2014  [new]
iljy
Member

Откуда:
Сообщений: 8711
Aliya19,

Сообщение возникает совершенно другое

Сообщение 547, уровень 16, состояние 0, строка 26
Конфликт инструкции INSERT с ограничением FOREIGN KEY "fk_otdel_sotr". Конфликт произошел в базе данных "tempdb", таблица "dbo.Sotrudnik", column 'id_sot'.
Выполнение данной инструкции было прервано.


У вас нет сотрудника с ид 5.
18 окт 16, 01:37    [19792797]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с SQL server 2014  [new]
komrad
Member

Откуда:
Сообщений: 5252
Aliya19,

"Руководитель Маркетингового отдела"
18 окт 16, 02:16    [19792805]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с SQL server 2014  [new]
Aliya19
Member

Откуда:
Сообщений: 2
Гавриленко Сергей Алексеевич, да, поняла, а как теперь вставить id отдела в сотрудники? Если напрямую, выдает ошибку
INSERT INTO Sotrudnik (id_sot,FIO_sot, dolchnost) VALUES ( '1','Арсибекова Бэлла Эдуардовна', 'Руководитель Отдела продаж')
INSERT INTO Sotrudnik (id_sot,FIO_sot, dolchnost ) VALUES ( '2','Арутюнян Генрик Оганесович', 'Руководитель Планового отдела')
INSERT INTO Sotrudnik (id_sot, FIO_sot, dolchnost) VALUES ('3', 'Ахметов Данил Эдуардович', 'Руководитель Маркетингово отдела')
select * from Sotrudnik

insert into Otdel(id_otdel, id_sotr,name_otdel) values ('1' , 1,'Отдел продаж')
insert into Otdel(id_otdel, id_sotr, name_otdel) values ('2' , 2,'Плановый отдел')
insert into Otdel(id_otdel, id_sotr, name_otdel) values ('3' , 3,'Маркетинговый отдел')

select * from Otdel
18 окт 16, 02:18    [19792807]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с SQL server 2014  [new]
iap
Member

Откуда: Москва
Сообщений: 47000
А зачем отдел ссылается на сотрудника?
alter table otdel add constraint fk_otdel_sotr foreign key (id_sotr) references sotrudnik(id_sot)
18 окт 16, 11:05    [19793587]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить