Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Takie same pole w dwóch tabelach
Regss
post 11.01.2012, 20:53:11
Post #1





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 7.05.2006

Ostrzeżenie: (0%)
-----


Witam, jestem początkujący w MySQL'u.

Posiadam dwie tabele

CREATE TABLE IF NOT EXISTS `movie` (
`idMovie` int(11) NOT NULL AUTO_INCREMENT,
`idFile` int(11) NOT NULL AUTO_INCREMENT,
+ inne pola

CREATE TABLE IF NOT EXISTS `streamdetails` (
`idFile` int(11) NOT NULL,
`iStreamType` int(11) DEFAULT NULL,
+ inne pola

Przy dodawaniu jednej pozycji wysyłane są dwa zapytania INSERT do pierwszej i drugiej tabeli.

Pierwsze zapytanie tworzy w tabeli "movie" jeden rekord.

Chciałbym aby drugie zapytanie utworzyło w tabeli "streamdetails" dwa rekordy obydwa miały by to samo "idFile" co w pierwszej tabeli natomiast pole "iStreamType" w pierwszym rekordzie miałoby wartość 0 a drugim wartość 1. Czy można dokonać czegoś takiego żeby pole "idFile" w drugiej tabeli automatycznie dostawało wartość z pola "idFile" z pierwszej tabeli.

Czy po prostu muszę dodatkowym zapytaniem sprawdzić wartość tego pola i następnie zapisać je w drugiej tabeli.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
mortus
post 11.01.2012, 22:08:12
Post #2





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

Ostrzeżenie: (0%)
-----


Tabela nie może mieć dwóch kolumn automatycznie numerowanych, co zresztą byłoby bez sensu.
Najlepiej użyć TRIGGER-a AFTER INSERT, który sam doda dwa wiersze do drugiej tabeli korzystając z `NEW`.`id`.

Alternatywą jest transakcja +:
1. MySQL-owa funkcja LAST_INSERT_ID()
2. PHP-owa funkcja mysql_insert_id()
3. a w ostateczności SELECT.

Schemat transakcji:
- wstaw dane do tabeli 1 (INSERT)
- pobierz identyfikator ostatniego wstawionego wiersza (podpunkty powyżej)
- wstaw wiersze do drugiej tabeli, korzystając z pobranego identyfikatora.

I oczywiści trzeba kontrolować, czy wszystko przebiega prawidłowo.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 07:13