[sql] no primary key

0

posiadam taka baze danych : <email>http://img155.imageshack.us/my.php?image=nowyobrazbitowyyl7.png</email>

problem polega na tym ze mam dodac nowy wpis do tabeli rejestr. pisze jak mnie uczono:

insert into rejestr (num_stud, kurs, sekcja) values (1111,'CHEM',1)

i zostaje przywitanym radosnym errorem!!! :| "no primary key value for foreign key "studenci" in table "rejestr" "

kto pomoze? przekopalem troche kursow SQL, wyklady madrych ludzi i jakos dalej tkwie w czarnej dziurze
dzieki z gory za cenne porady :)

0

Dobrze, że piszesz pełne dodania, wracając jednakże do tematu, musisz miec cos namieszane z relacjami. Schemat, który opublikowałeś niewiele mówi o konstrukcji bazy, to tak samo jakbyś wypisał tabele i jej pola. W bazie masz zapewne zamiszczony klucz obcy, który "łączy" tobie tabele studenci z rejestr a w tabeli tej nie masz klucza primary co skutkuje klapą, bo sql nie może znaleźć żadnego powiązania między studentami a rejestrem. Dobrym zwyczajem jest dodawanie do każdej tabeli klucza primary. O ile dobrze rozumiem tabela rejestr jest pomocniczą aby odzwierciedlić relację wielu do wielu między kursami a studentami, dlatego sie to sypie. Wyślij jakiś dokładniejszy schemat, np. w MicroOLAP czy cos gdzie będzie to wszystko dobrze pokazane. Wystarczy chociażby model fizyczny.

0

najwyrazniej masz problem z forein keys (klucze obce). Zalozyles miedzy wymienionymi przez Ciebie tabelami constrainta bez nadania klucza glownego w tej drugiej tabeli.
Teraz mozesz sprawdzic constrainty na tabeli i:

a) usunac contrainta i nie bedzie sprawdzana prawidlowosc wpisanych danych poprzez relacje tabel
b) zalozyc klucz glowny na drugiej tabeli.

W msSQL pomocne bedzie polecenie

sp_help nazwa_tabeli
oraz dla widokow sp_helptext nazwa_widoku
dla indexow sp_helpindex nazwa indexu
dla constraintow sp_helpconstraint nazwa_constrainta

Sprawdz jeszcze czy w tabeli studenci jest wpis dla wartosci 111

1 użytkowników online, w tym zalogowanych: 0, gości: 1