Dodawanie rekordu w eelacyjnej bazie danych

0

W jaki sposób dodać jednocześnie dane do dwoch tabel. Mam tabele FILM i tabele PLYTA. Płyta przechowuje ilość egzemplarzy. Posiada dwa pola ID i Film_ID. W jaki sposób skonstruować zapytanie gdy dodaje film aby dodał się np. jeden egzemplarz tego filmu do płyty?

cmdDataBase.CommandText = "INSERT INTO plyta(Film_Id) SELECT ID FROM film F INNER JOIN plyta P ON F.Id = P.Film_Id"; cmdDataBase.CommandText = "INSERT INTO film(Tytul, Rezyser, Rok, Kategoria_filmu) VALUES (@Tytul, @Rezyser, @Rok, @Kategoria_filmu) ";
1

Skoro FILM jest tabelą nadrzędną, to dodajesz rekord najpierw do niej, zwracając ID filmu do zmiennej, a potem używając go w kolejnym poleceniu wstawiającym dane do PLYTA.
Albo korzystasz z sekwencera do nadawania unikalnego ID dla FILMU, a potem używasz bieżącej wartości sekwencera w insercie do tabeli podrzędnej.

Tak w ogóle, w INSERCIE do PLYTA nie widzę ID, a to chyba klucz główny tabeli? Nie jest to pole typu NOT NULL?

Nie napisałeś jakiej bazy używasz, a od tego zależą detale (np. klauzula RETURNING do zwracania wartości pola z inserta czy sposób obsługi sekwencerów).

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