![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 764 Pomógł: 3 Dołączył: 30.04.2003 Ostrzeżenie: (0%) ![]() ![]() |
Witam serdecznie,
zastanawia mnie jedna roznica pomiedzy tymi dwoma SZBD. Przykład: mam kod tworzacy tabele MySQL:
oraz PostgreSQL Cytat CREATE TABLE test ( id SERIAL NOT NULL, imie VARCHAR(40) NOT NULL UNIQUE, PRIMARY KEY (id) ); Następnie wykonuję następujące zapytania: MySQL:
PostgreSQL:
Następnie: i wyniki: MySQL: Kod +----+--------+ | id | imie | +----+--------+ | 1 | Michal | | 2 | Tomek | +----+--------+ 2 rows in set (0.01 sec) PostgreSQL: Kod template1=# SELECT * FROM test; 1 | Michal 3 | Tomek I moje pytanie jest następujące: dlaczego PostgreSQL w przypadku nieudanej proby dodania nowej pozycji (tutaj za sprawa UNIQUE) juz "rezewuje" klucz glowny o numerze 2 (w przeciwienstwie do MySQL'a). Wlasciwie przy tego typu opecji wszystko jedno jaka wartosc bedzie mial klucz glowny, pytam tylko z czystej ciekawosci. Mam tutaj swoja teorie dlaczego tak sie dzieje, natomiast nie chcialbym zmyslac dlatego tez pytam. Moze ktos z Was wie jak to wyglada w innych SZBD. Pozdrawiam. |
|
|
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 2 923 Pomógł: 9 Dołączył: 25.10.2004 Skąd: Rzeszów - studia / Warszawa - praca Ostrzeżenie: (0%) ![]() ![]() |
W Postgresie nie ma inkrementacji pola tylko wywołanie sekwencji która jest zwiększana w momencie próby dodania rekordu do bazy danych.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 764 Pomógł: 3 Dołączył: 30.04.2003 Ostrzeżenie: (0%) ![]() ![]() |
Cytat(SongoQ @ 2005-07-14 15:48:41) W Postgresie nie ma inkrementacji pola tylko wywołanie sekwencji która jest zwiększana w momencie próby dodania rekordu do bazy danych. Piękne dzięki za odpowiedź. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 04:33 |