Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: ERROR 1064 (42000) - Co ja robię nie tak ?
Forum PHP.pl > Forum > Bazy danych > MySQL
starach
Chcę dodać do tabeli dodatkowe pole a tutaj jakiś dziwny błąd mi się pojawia.
Taki komunikato pojawiał mi się też przy innych operacjach na tabeli nawet przy prostym poleceniu drop table.
Co jest grane ? Z SQLYog'a mogę modyfikować dodawać etc. A z konsoli nie.

mysql> alter table group add column group_privileges varchar(64);
ERROR 1064 (42000): 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 'group add column group_privileges varchar(64)' at line 1
SHiP
Nie wiem czy o to chodzi ale ja nigdy nie kozystalem ze slowa kluczowego "column". Poza tym nie wiem czy "group" to dobra nazwa skoro w sql wystepuje "group by()"
starach
eee no tak to może być właśnie to nie pomyślałem w co się brało takie słowa apostrofy czy co to było bo nie pamiętam.
edit>
solved wystarczyło dać `
alter table `group` add column group_privileges varchar(64);
Darek82
Witam mam też ten error ucze sie wlasnie wedlug ksiazki, i mam plik ksiazkorama.sql z tabelami wgrałem go do mysql/bin/ i wpisuje komende mysql -u root -D ksiazki -pmojehaslo < ksiazkorama.sql i ten error mam może mi ktoś pomóc?
ylk
group to jest slowo kluczowe w MySQL i dlatego sie wykrzacza. Jak weźmiesz w odwrócone uszy nie będzie problemu, ale najlepiej nie nazywać tabel słowami kluczowymi smile.gif
pełna lista słów kluczowych tutaj: http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html
Darek82
Tamten post jest stary, prosze o pomoc w mojej sprawie
starach
Wiesz bez kodu z tego pliku który chcesz wgrać za wiele ci nie pomożemy.

~ylk: Już kilka lat, kilka książek i kilka tysięcy stron różnych manuali później. wink.gif Ahhh nagle mnie nostalgia dopadła.... O już przeszła.
Darek82
To jest kod z pliku ksiazkorama.sql

  1. CREATE TABLE klienci
  2. ( klientid int UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
  3. nazwisko char(50) NOT NULL,
  4. adres char(100) NOT NULL,
  5. miejscowosc char(30) NOT NULL
  6. );
  7.  
  8. CREATE TABLE zamowienia
  9. ( zamowienieid int UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
  10. klientid int UNSIGNED NOT NULL,
  11. wartosc float(6,2),
  12. DATA date NOT NULL
  13. );
  14.  
  15. CREATE TABLE ksiazki
  16. ( isbn char(13) NOT NULL PRIMARY KEY,
  17. autor char(50),
  18. tytul char(100),
  19. cena float(4,2)
  20. );
  21.  
  22. CREATE TABLE pozycje_zamowione
  23. ( zamowienieid int UNSIGNED NOT NULL,
  24. isbn char(13) NOT NULL,
  25. ilosc tinyint UNSIGNED,
  26.  
  27. PRIMARY KEY (zamowienieid, isbn)
  28.  
  29. );
  30.  
  31. CREATE TABLE recenzje_ksiazek
  32. ( isbn char(13) NOT NULL PRIMARY KEY,
  33. recenzja text
  34. );



....może dodam że testuje to na całości zainstalowanej na swoim komputerze.
wookieb
~Darek82 Popraw bbcode
starach
Nie wiem co ci się nie wykonuje u mnie to działa bez problemu. Wersja bazy 5.5.9.
Darek82
a moge miec zle skonfigurowane MySQL lub PHP?

Bo baze danych tworze normalnie, uzytkownika, pliki index.php tez wyswietla mi...

umieszczam plik ksiazkorama.sql do katalogu C:\Program Files\MySQL\MySQL Server 5.5\bin\

starach
Raczej jest to mało prawdopodobne. Jedyne co mi przychodzi do głowy to skopane kodowanie. Przepisz to ręcznie do pliku i podaj pełną ścieżkę do niego. I niech ci do głowy nie przyjdzie na serwerze produkcyjnym wprowadzać hasłow ten sposób. tongue.gif
Darek82
Przepraszam że dopiero teraz odpisuję, zmieniłem kodowanie z 8859-2 na utf-8 i to samo, w jaki sposób wpisać ścieżke, w którym momencie i jaką komendą mam to zrobić, poniżej jest to co wpisuje w CMD i bład jaki sie pojawia

http://img233.imageshack.us/i/71260602.gif/



No i nie ma odpowiedzi :/
Nh2003
W pierwszej linii robisz dobrze - w samej konsoli wywolujesz wgranie bazy z pliku (linia mysql -u root -D ksiazki -pmojehaslo < ksiazkorama.sql). Potem natomiast logujesz sie do mysqla (mysql -u root -pmojehaslo) po czym bezsensownie znowu wykonujesz komende mysql -u root -D ksiazki -pmojehaslo < ksiazkorama.sql. Zamiast tego wyswietl sobie bazy
  1. SHOW DATABASES;
po tym daj
  1. USE ksiazki;
i na koniec
  1. SHOW TABLES;


Zobaczysz ze od poczatku baza byla dobrze wgrywana.

PS. Czasami wypada sie zapoznac z manualem danej komendy.
Darek82
Baza utowrzylem w CMD wczesniej, ale wgrać tabel z pliku ksiazkorama.sql nie moge, wykonałem po kolei to co napisałeś i było wszystko okej aż do momentu show tables gdzie wyświetliło empty set tak jak na zdjeciu poniżej, próbowałem bez logowania sie po raz drugi tylko dałem -Dksiazki < ksiazkorama.sql; i to co strzałka pokazuje, czyli błąd.....

http://img4.imageshack.us/i/beznazwy1kopiaz.gif/
Nh2003
Rozróżnij dwie rzeczy - cmd to konsola windowsa, `mysql` to `konsola` mysql. Komendy typu mysql -uuser -phaslo nazwaBazy < plik.sql wykonuje się w konsoli systemowej. Po zalogowaniu się do mysqla używasz składni mysql - select, insert, update itp. Import ktory chcesz zrobic musisz zrobic przez cmd:

  1. mysql -uuser -phaslo nazwaBazy < plik.sql


Jeżeli nadal Ci się nie udaje to prawdopodobnie masz coś zrypane w pliku sql. Spróbuj zainstalować sobie np. HeidiSql i spod niego spróbuj wgrać bazę - pokaże Ci jakie błędy są.
Darek82
Po zalogowaniu sie do mysql poprzez CMD wywoływalem te komendy nie wiem o czym piszesz, sprubuje uzyc tego programu co poleciles.

Poprzez HeidiSQL całego pliku nie mogłem też załadować usunąłem wszystkie tabele poza recenzje_ksiazek i ja mi wgrało reszte nie...
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.