Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> transakcje i primary key
cfk
post 5.12.2019, 09:49:47
Post #1





Grupa: Zarejestrowani
Postów: 125
Pomógł: 1
Dołączył: 8.01.2005
Skąd: Warszawa

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


Cześć,
Potrzebuję zrobić primary key, który zawiera dwie kolumny np. numer_faktury i pozycja_faktury (AUTOINCREMENT). Wtedy silnikiem tabeli musi być MyISAM. Z drugiej strony MyISAM nie obsługuje transakcji, a tego tez potrzebuję. zeby mieć transakcję muszę mieć tabelę o silniku InnoDB (wtedy nie mogę zrobić indeksu, tak jak potrzebuję).
Czy jest jakiś sposób jak to obejść?
Go to the top of the page
+Quote Post
mmmmmmm
post 5.12.2019, 13:59:46
Post #2





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

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


Czary: http://sqlfiddle.com/#!9/f82f1f/2
Go to the top of the page
+Quote Post
cfk
post 5.12.2019, 15:12:00
Post #3





Grupa: Zarejestrowani
Postów: 125
Pomógł: 1
Dołączył: 8.01.2005
Skąd: Warszawa

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


mając taką tabelę nie zrobię w pdo begin Transaction, coomit, rollback
Go to the top of the page
+Quote Post
mmmmmmm
post 5.12.2019, 15:26:46
Post #4





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

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


Pokazałem Ci, że da się zrobić tabelę z PK z dwóch pól, z których jedno jest autoincrement. I na dodatek Engine InnoDB.
Go to the top of the page
+Quote Post
javafxdev
post 5.12.2019, 18:29:40
Post #5





Grupa: Zarejestrowani
Postów: 95
Pomógł: 7
Dołączył: 27.10.2015

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


a czemu na pozycje_faktury musisz mieć autoincrementa?
- Jeżeli będziesz tego używał do wyświetlania w widoku elementów z faktury to wtedy będziesz miał dziury jak będzie rollback innej transakcji.
- Jeżeli nie będziesz tego używał do wyświetlania to lepiej zrobić tabelkę pozycje_faktury(id, faktura_id) oraz faktura(id, name, itd.) i zrobić one-to-many relację, a pozycje na fakturze wyliczać w locie w php - chyba że kolejnoś ma znaczenie ale to nadal możesz sortować po id.

Czemu nie tak?
Go to the top of the page
+Quote Post
viking
post 5.12.2019, 18:32:24
Post #6





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


Cytat(cfk @ 5.12.2019, 15:12:00 ) *
mając taką tabelę nie zrobię w pdo begin Transaction, coomit, rollback

http://sqlfiddle.com/#!9/ab48aa3/1


--------------------
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: 28.03.2024 - 11:45