Ошибка вставки SQL Server - PullRequest
       0

Ошибка вставки SQL Server

2 голосов
/ 18 января 2012

Я создал базу данных, и я создал следующие поля, которые связаны между собой:

CREATE TABLE abonat(COD_ABONAT int PRIMARY KEY ,Nume nvarchar(30),Prenume nvarchar(30),Adresa nvarchar(60),telefon char(13),CNP char(14),COD_ABONAMENT int)
CREATE TABLE abonament(COD_ABONAMENT int PRIMARY KEY,Denumire nvarchar(30),tip int,TRAFIC_MB int, PRET float, PRET_EXTRA_TRAFIC float)
CREATE TABLE contractx(NR_CONTRACT int PRIMARY KEY, COD_ABONAT int, VALABILITATE date, DATA_INCHEIERII date)
CREATE TABLE stare(NR_CONTRACT int, SERIE_MODEM char(10), STARE int)
CREATE TABLE plata(NR_FACTURA int PRIMARY KEY, DATA_PLATII date)
CREATE TABLE factura(NR_FACTURA int, COD_ABONAT int PRIMARY KEY, DATA_EMITERII date, DATA_LIMITA date, TOTAL_PLATA float)
CREATE TABLE tip(TIP_CONTRACT int PRIMARY KEY, DESCRIERE nvarchar(50), SUMA float)
CREATE TABLE penalizare(NR_FACTURA int PRIMARY KEY, SUMA float)
CREATE TABLE bonus (FACTURA int PRIMARY KEY, BONUS_TRAFIC int, BONUS_ABONAMENT float)

ALTER TABLE abonament ADD CONSTRAINT FK_CODY FOREIGN KEY (COD_ABONAMENT) REFERENCES abonat(COD_ABONAT)
ALTER TABLE contractx ADD CONSTRAINT FF_COD FOREIGN KEY (COD_ABONAT) REFERENCES abonat(COD_ABONAT)
ALTER TABLE stare ADD CONSTRAINT FF_NEWCOD FOREIGN KEY (NR_CONTRACT) REFERENCES contractx(NR_CONTRACT)
ALTER TABLE factura ADD CONSTRAINT FF_PLATA FOREIGN KEY (NR_FACTURA) REFERENCES plata(NR_FACTURA)
ALTER TABLE contractx ADD CONSTRAINT FF_ALTELE FOREIGN KEY (COD_ABONAT) REFERENCES factura(COD_ABONAT)

INSERT INTO abonat 
VALUES (1,'STROE','ALIN','Str. Deznatui Bloc A 15 sc 2','0741966242','1800929160031',1)
INSERT INTO abonat 
VALUES (2,'STAMIN','SILVIAN','Str. Raului nr 20','0741563241','1730229160021',2)
INSERT INTO abonat 
VALUES (3,'JIPA','ALINA','Str.Caracal nr 23','0731226120','2770929160031',3)
INSERT INTO abonat 
VALUES (4,'ROHOD','RARES','Str.Burebista nr 44','0735411469','1550520160035',4)
INSERT INTO abonat 
VALUES (5,'AMORARITEI','EUGEN','Str.Privdor Bl B3 sc 2 ap 8','0765511444','18012245160029',5)


INSERT INTO abonament
VALUES (1,'BASIC',1,500,9.99,1)

Моя проблема заключается в том, что при попытке вставить в абонацию возникает следующая ошибка:

Оператор INSERT конфликтует с ограничением FOREIGN KEY "FK_CODY".Конфликт произошел в базе данных «ICSx», таблице «dbo.abonat», столбце «COD_ABONAT».

Как я могу это исправить?Есть ли способ, которым я могу соединить таблицы без этой ошибки?

Ответы [ 2 ]

0 голосов
/ 19 января 2012

Это странно.Вы запускаете это в базе данных с включенной репликацией?

0 голосов
/ 18 января 2012

Ваша проблема в том, что ваше заявление не было вставлено в последний столбец. Подсчитайте количество столбцов и количество указанных вами значений.

Лично я верю, что отступы, обозначения и разъяснение вещей - это хорошая практика, которая может сэкономить ваше время. Вот как я это делаю.

INSERT INTO MY_TABLE(
   COL1
  ,COL2
  ,COL3
)VALUES(
   1 --COL1
  ,2 --COL2
  ,3 --COL3
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...