#mysql #sql #database #duplicates #primary-key
#mysql #sql #База данных #дубликаты #первичный ключ
Вопрос:
пытаюсь создать базу данных для команд в телешоу здесь. но когда я пытаюсь вставить данные в tblShowteam
следующую ошибку, появилась ошибка.
Msg 2627, Level 14, State 1, Line 2
Violation of PRIMARY KEY constraint 'PK__tblShowt__F693078C03317E3D'. Cannot insert duplicate key in object 'dbo.tblShowteam'.
таблицы
-- tabbellen aanmaken
create table tblShow(
setId int,
Datum date,
teams int
primary key (setId));
create table tblShowteam(
SetId int,
datum date,
teams int,
primary key (teams));
create table tblTeam(
TeamId int,
Coach varchar(35),
CoachId int,
teams int
primary key (CoachId));
-- participant table
create table tblDeelnemer(
DeelnemerId int identity(1, 1),
DeelnemerV varchar(35),
deelnemerT_V varchar(10),
DeelnemerA varchar(35),
CoachId int,
datum_optreden date
primary key (DeelnemerId));
--table for the public viewers
create table tblKijker(
Kijkerv varchar(35),
KijkerT_V varchar(10),
KijkerA varchar(35),
Stoelnummer int identity(1,3),
ShowId int Not null,
Email varchar(35)
primary key (Email));
мои вставки будут выглядеть следующим образом:
insert into tblShowteam values (1, '2014-06-28', 1)
insert into tblShowteam values (2, '2014-06-05', 1)
insert into tblShowteam values (3, '2014-06-12', 1)
insert into tblShowteam values (4, '2014-06-19', 1)
insert into tblShowteam values (5, '2014-06-26', 1)
все остальные вставки (в разных таблицах) работают как обычно.
что я здесь делаю не так?
Комментарии:
1. @Ben я выбрал случайное шоу из списка шоу. (отредактирует вопрос)
Ответ №1:
ваша проблема здесь
primary key (teams));
я думаю, вы должны сделать это так
primary key (setId));
вот так:
create table tblShowteam(
SetId int,
datum date,
teams int,
primary key (setId));
потому что вы вставляете одни и те же команды 1
, когда используете команды, primary key
что означает отсутствие дубликатов.
Ответ №2:
ваши вставки:
insert into tblShowteam values (1, '2014-06-28', 1)
insert into tblShowteam values (2, '2014-06-05', 1)
...
DB переведет это следующим образом:
insert into tblShowteam (SetId, datum, teams) values (1, '2014-06-28', 1);
поскольку третий столбец является вашим первичным ключом, вы получили эту ошибку.