Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL]Problem z utworzeniem tabelki
Forum PHP.pl > Forum > Bazy danych > MySQL
zeppastian
Witajcie Moi drodzy.

Jestem w trakcie tworzenia swojej pracy inzynierskiej, ktora w calosci oparta bedzie o PHP i MySql. Jestem na etapie zakonczonego projektowania baz i ich tworzenia juz bezposrednio. Mam oto jeden problem, zakladam oczywiscie ze wynika on z mojej niewiedzy. Otóż:

Oto zapytanie ktore ma utworzyc tabelke 'wiadomosci', w jej srodku sa ustawione dwa klucze obce dla pol:
od_kogo --> odwolujaca sie do tabelki uzytkownicy do pola id_uzyt
do_kogo --> odwolujaca sie do tabelki uzytkownicy do pola id_uzyt

  1. CREATE TABLE wiadomosci (
  2. id_wiad INTEGER(255) NOT NULL AUTO_INCREMENT,
  3. temat TINYTEXT(255) NULL,
  4. tresc TEXT(255) NULL,
  5. data_wys DATETIME NULL,
  6. od_kogo INTEGER(255) NOT NULL,
  7. do_kogo INTEGER(255) NOT NULL,
  8. v INTEGER(255) NULL,
  9. PRIMARY KEY(id_wiad),
  10. INDEX wiadomosci_FKIndex1(od_kogo),
  11. INDEX wiadomosci_FKIndex2(do_kogo),
  12. FOREIGN KEY(od_kogo)
  13. REFERENCES uzytkownicy(id_uzyt) ON DELETE NO ACTION ON UPDATE NO ACTION
  14. FOREIGN KEY(do_kogo)
  15. REFERENCES uzytkownicy(id_uzyt) ON DELETE NO ACTION ON UPDATE NO ACTION
  16. )
  17. TYPE=InnoDB;


Oczywiscie jest wysypka

  1. #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(255) NULL,
  2. tresc TEXT(255) NULL,
  3. data_wys DATETIME NULL,
  4. od_kogo INTEG' at line 3


linia 3ecia, hymm, a coz tu moze byc zle, zakladam ze to nie tu jest problem winksmiley.jpg
nie do konca jestem przekonany czy moge w taki sposob utworzyc klucze jak to zrobilem wyzej. Na zasadzie dwa pola w jednej tabelce do jednego pola w innej tabelce. Z gory dziekuje za pomoc, ew. wskazowki.

pozdr

edit. temat chyba powinienem byl umiescic w dziale dla poczatkujacych worriedsmiley.gif
phpion
Chyba chodzi o to, że zapomniałeś dać przecinka między pierwszym ograniczeniem, a drugim.
  1. FOREIGN KEY(od_kogo)
  2. REFERENCES uzytkownicy(id_uzyt) ON DELETE NO ACTION ON UPDATE NO ACTION
  3. FOREIGN KEY(do_kogo), -- tutaj
  4. REFERENCES uzytkownicy(id_uzyt) ON DELETE NO ACTION ON UPDATE NO ACTION


Edycja.
Przyjrzałem się na nowo i nieźle pomieszałeś: TEXT(255). Daj samo TEXT (chyba na to pole nie daje się ograniczenia). INTEGER(255)? Daj samo INTEGER albo INT(10).
zeppastian
  1. FOREIGN KEY(od_kogo)
  2. REFERENCES uzytkownicy(id_uzyt) ON DELETE NO ACTION ON UPDATE NO ACTION, -- tutaj
  3. FOREIGN KEY(do_kogo)
  4. REFERENCES uzytkownicy(id_uzyt) ON DELETE NO ACTION ON UPDATE NO ACTION


chyba tak jak utaj wskazalem przecinek powinien byc winksmiley.jpg
w kazdym razie moj blad, nie bylo go, niestety dalej wysypka, ten sam komunikat sad.gif






edit:
Jest solucja!

  1. CREATE TABLE wiadomosci (
  2. id_wiad INTEGER(255) NOT NULL AUTO_INCREMENT,
  3. [b] temat TINYTEXT NULL, 1.
  4. tresc TEXT NULL, 2.
  5. data_wys DATETIME NULL, 3.[/b]
  6. od_kogo INTEGER(255) NOT NULL,
  7. do_kogo INTEGER(255) NOT NULL,
  8. v INTEGER(255) NULL,
  9. PRIMARY KEY(id_wiad),
  10. INDEX wiadomosci_FKIndex1(od_kogo),
  11. INDEX wiadomosci_FKIndex2(do_kogo),
  12. FOREIGN KEY(od_kogo)
  13. REFERENCES uzytkownicy(id_uzyt) ON DELETE NO ACTION ON UPDATE NO ACTION,
  14. FOREIGN KEY(do_kogo)
  15. REFERENCES uzytkownicy(id_uzyt) ON DELETE NO ACTION ON UPDATE NO ACTION
  16. )
  17. TYPE=InnoDB;


1. tinytext nie daje sie wielkosci
2. do text jak wspomniales wyzej nie daje sie wielkosci
3. do DATETIME nie daje sie wielkosci

wiedzialem ze to wynika z mojej niewiedzy, jednk co do przecinka to ja mialem racje winksmiley.jpg

Dziekuje bardzo za pomoc i oby Twoje problemy takze tak szybko sie rozwiazywaly party.gif
phpion
Cytat(zeppastian @ 15.04.2008, 19:47:11 ) *
jednk co do przecinka to ja mialem racje winksmiley.jpg

Hehe, no machnąłem się smile.gif aczkolwiek! może to była specjalnie zastawiona pułapka abyś sam znalazł dobre rozwiązanie (jak to zrobić opisałem dobrze, machnąłem się tylko w umiejscowieniu przecinka w kodzie tongue.gif).
zeppastian
Cytat(phpion @ 15.04.2008, 19:59:51 ) *
Hehe, no machnąłem się smile.gif aczkolwiek! może to była specjalnie zastawiona pułapka abyś sam znalazł dobre rozwiązanie (jak to zrobić opisałem dobrze, machnąłem się tylko w umiejscowieniu przecinka w kodzie tongue.gif).


ano slusznie!, dzieki jeszcze raz smile.gif

pozdr666!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.