Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wygenerowanie zawartości tabeli, kolumna `numer`- od 00000000 do 99999999, losowo, ale bez powtórzeń
SLimiX
post
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 19.06.2005

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


Witam, chce stworzyć tabele która będzie miała następujące kolumny

  1. CREATE TABLE `tabela` (
  2. `id` int NOT NULL AUTO_INCREMENT,
  3. `numer` int
  4. PRIMARY KEY (`id`)
  5. )
  6. TYPE=MyISAM AUTO_INCREMENT=3;


Chciałbym wygenerować tabele w której od razu były by:
`id` - od 1 do 99999999 #czy w ogolę mogę wygenerować tak dużą ilość rekordów?
`numer`- od 00000000 do 99999999, #ale tak by nie były poukładane po kolei i się nie powtarzały.

Jestem baardzo początkujący w MySQL, więc proszę o wyrozumiałość. winksmiley.jpg Uczę się z w3schools, a tam odpowiedzi nie znalazłem. Google też nie pomaga. ;/

Da się to zrobić za pomocą MySQL?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
Mchl
post
Post #2





Grupa: Zarejestrowani
Postów: 855
Pomógł: 145
Dołączył: 17.07.2008
Skąd: High Memory Area

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


A może powiedz najpierw po co Ci taka tabela, to się zastanowimy, czy nie ma lepszego rozwiązania.
Go to the top of the page
+Quote Post
someone.cool
post
Post #3





Grupa: Zarejestrowani
Postów: 50
Pomógł: 1
Dołączył: 31.01.2009

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


dobre pytanie Mchl.
może po to, żeby zapchać komuś bazę ? winksmiley.jpg

Cytat(SLimiX @ 10.12.2009, 00:19:14 ) *
#czy w ogolę mogę wygenerować tak dużą ilość rekordów?


- 2 147 483 648 - 2 147 483 648 = to zakres inta -> UNSIGNED to 2x wiecej -> 0- 4 294 967 296. Ty chcesz "tylko" 99 999 999 -> WEJDZIE biggrin.gif


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





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Cytat
`id` - od 1 do 99999999 #czy w ogolę mogę wygenerować tak dużą ilość rekordów?
`numer`- od 00000000 do 99999999,

Nie da rady, bo masz o jeden numer za dużo winksmiley.jpg a tak poważnie. Ja bym sobie wygenerował zapytanie insert w php, np:

  1. $id = range(1,99999999);
  2. $numers = range(1,99999999);
  3. shuffle($numers);
  4. $sql = "insert into tabela values ";
  5. $i = 0;
  6. foreach($id as $v) {
  7. $sql.= "($id".$numers[$i]."),\n";
  8. $i++;
  9. }
  10. $sql = substr($sql,0,strlen($sql)-1);
  11. $sql.=";";
  12. // i teraz query...




--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
Mchl
post
Post #5





Grupa: Zarejestrowani
Postów: 855
Pomógł: 145
Dołączył: 17.07.2008
Skąd: High Memory Area

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


A policzyłeś jaki rozmiar będzie miało takie zapytanie?
Go to the top of the page
+Quote Post
darko
post
Post #6





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Mchl racja, to nie przejdzie, bo utworzone zapytanie będzie za długie, trzeba podzielić na jakieś sensowne części, albo w ogóle inaczej to zrobić.

Ten post edytował darko 20.12.2009, 17:44:04


--------------------
Nie pomagam na pw, tylko forum.
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 Aktualny czas: 21.08.2025 - 19:25