Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> nadanie id od nowa
ActivePlayer
post
Post #1





Grupa: Przyjaciele php.pl
Postów: 1 224
Pomógł: 40
Dołączył: 6.07.2004
Skąd: Wuppertal

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


potrzebuję nadac nowe id wszystkim rekordom w tabeli. chodzi o to aby kazdemu rekordowi nadac inne id, zaczynając od 1. jest opcja zrobic to 1 zapytaniem ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
tmk
post
Post #2





Grupa: Zarejestrowani
Postów: 135
Pomógł: 0
Dołączył: 15.04.2004
Skąd: w-wa

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


Jeśli id ma być inne dla kazdego rekordu(zapewne tak, ale tego nie napisałeś winksmiley.jpg )to napisz pętlę w plpgsql'u (zwykły LOOP, albo For). Nie będzie to jedno zapytanie, ale poleci szybko
Go to the top of the page
+Quote Post
SongoQ
post
Post #3





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%)
-----


Gorzej bedzie jesli rekordy sa powiazane i PK zmieniasz.


--------------------
Go to the top of the page
+Quote Post
sf
post
Post #4





Grupa: Zarejestrowani
Postów: 1 597
Pomógł: 30
Dołączył: 19.02.2003
Skąd: Tychy

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


bo tak naprawde nikt nie ``porzadkuje`` indexow... bo po co ?


--------------------
Zapraszam na mój php blog, tworzenie stron.
Go to the top of the page
+Quote Post
php programmer
post
Post #5





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 5
Dołączył: 8.11.2004
Skąd: trójmiasto

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


poza tym jest przecież taka klauzula, że PRIMARY KEY się nie zmienia
nawet jak usuniesz to nie możesz dać nowego pola z id które już było
Go to the top of the page
+Quote Post
SongoQ
post
Post #6





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%)
-----


Cytat
poza tym jest przecież taka klauzula, że PRIMARY KEY się nie zmienia
nawet jak usuniesz to nie możesz dać nowego pola z id które już było


W jakiej bajce to przeczytales? co za pierdoly wypisujesz. Jesli nie podasz jakie id to prawda bedzie kolejne z sekwencji, a jesli
  1. INSERT
  2. INTO tab
  3. (id) VALUES (1)
to takie cos Ci zapisze.
Radze wczesniej zastanowić sie co pisesz.


--------------------
Go to the top of the page
+Quote Post
php programmer
post
Post #7





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 5
Dołączył: 8.11.2004
Skąd: trójmiasto

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


To było w bajce pt.
"SQL w mgnienu oka" (Ben Forta), Cytuję (strona 184-185):
Cytat
Dowolna kolumna tabeli może stać się kluczem głównym, o ile spełnia następujące warunki:
- Dwa wiersze nie mogą posiadać tej samej wartości klucza główneho
- Każdy z wierszy musi posiadać określony klucz główny
- Kolumny zawierające klucz główny nie mogą być modyfikowane ani aktualizowane
- Wartości klucza głównego nie można użyć ponownie. Jeśli usunięto wiersz z tabeli, żaden nowy wiersz nie może przyjąć usuniętej wartości klucza głównego

Widze, że co niektórzy na tym forum uwielbiają krytykować,
nawet do tego stopnia, że bezwiednie że podważają rasowych informatyków
(czyli Ben Forta)

Ten post edytował php programmer 2.03.2006, 13:59:02
Go to the top of the page
+Quote Post
SongoQ
post
Post #8





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%)
-----


Cytat
- Wartości klucza głównego nie można użyć ponownie. Jeśli usunięto wiersz z tabeli, żaden nowy wiersz nie może przyjąć usuniętej wartości klucza głównego

Mozna uzyc. Nie zrozumiales ideologi autora.

Pewne rzeczy sa teoria. Autor mial na mysli ze prawidlowo dla sekwenci id jest nadawane automatycznie i nie bedzie takiej sytuacji ze nagle nada sie takie id jakie juz bylo usuniete.

Prosty przyklad, z mojego PG:

Schemat:
  1. CREATE SEQUENCE a_id_seq
  2. INCREMENT 1
  3. MINVALUE 1
  4. MAXVALUE 9223372036854775807
  5. START 1
  6. CACHE 1;
  7.  
  8. CREATE TABLE a
  9. (
  10. id int4 NOT NULL DEFAULT NEXTVAL('a_id_seq'::regclass),
  11. a varchar(10),
  12. CONSTRAINT a_pkey PRIMARY KEY (id)
  13. );


Teraz INSERTY
  1. INSERT
  2. INTO a
  3. (a) VALUES ('asdfads');
  4. INSERT
  5. INTO a
  6. (a) VALUES ('asdfads');
  7. INSERT
  8. INTO a
  9. (a) VALUES ('asdfads');


Teraz zobacz sobie co masz w bazie
  1. SELECT *
  2. FROM a

Rekordy o id: 1, 2, 3

Nastepnie usuwamy pierwszy rekord:
  1. DELETE
  2. FROM a
  3. WHERE id = 1


Teraz zobacz sobie co masz w bazie
  1. SELECT *
  2. FROM a

Rekordy o id: 2, 3

No i nasze oczekiwane zapytanie ktore udowodni ze tak nie jest
  1. INSERT
  2. INTO a
  3. (id, a) VALUES (1, 'asdfads');

Nie ma bledu.

Teraz zobacz sobie co masz w bazie
  1. SELECT *
  2. FROM a

Rekordy o id: 1, 2, 3

Podsumowujac, trzeba umiec czytac ze zrozumieniem. Tekst wyrwany z danej ksiazki czy art nic nie znaczy jesli sie nie wie czego dotyczy temat. Nie sadze zeby autorowi chodzilo o to o czym ty pisales. Bo tego nie zabraniaja mechanizmy bazy.


--------------------
Go to the top of the page
+Quote Post
php programmer
post
Post #9





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 5
Dołączył: 8.11.2004
Skąd: trójmiasto

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


no to co z tego, że mechanizmy bazy tego nie zabraniają,
to nie jest żaden argument,

poza tym przecież nie przepiszę tu całej książki żeby cię przekonać
dlatego napisałem fragment

Ten post edytował php programmer 2.03.2006, 14:26:59
Go to the top of the page
+Quote Post
SongoQ
post
Post #10





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%)
-----


Cytat
no to co z tego, że mechanizmy bazy tego nie zabraniają,
to nie jest żaden argument

Sprawdzales moje zapytania?
To ze jesli nie zabraniaja to znaczy ze sie mylisz i jesli autorowi dokladnie chodzilo o to co Tobie to sie myli tak samo jak ty, ale nie moge tego stwierdzic, bo kawalek tekstu o niczym nie swiadczy. Ale jestem w 100% przekonany ze autor mial na mysli inna zasade niz to o czym jest temat. Radze zebys ten tekst przeczytal w calosci kilka razy i przemyslal to.

Po powyzszej odpowiedzi, co co napisze moze byc troche obrazliwe ale odbieram Twoje posty jak posty invx.


--------------------
Go to the top of the page
+Quote Post
mike
post
Post #11





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


~php programmer robisz z siebie błazna wykazując postawę krowy z miedzy (bez obrazy): "głupty gadam i zadania nie zamienię, choćby wszyscy mi mówili jak bardzo wielkie głupoty gadam, i dalej muuuuczę swoje"

Postanowiłem zamknąć ten wątek tylko z jednego powodu, od bajek które tu czytam z Twoich ust mózg się lasuje.

~Active jeśli któraś z odpowiedzi, które tutaj padły CIę zadowala to spoko, ale jeśli chcesz dopytać o coś, lub najnormalniej kontynuować ten wątek to bez problemu go otworzę.

Zamykam.
Go to the top of the page
+Quote Post

Closed TopicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 06:35