Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Błędy podczas wgrywania bazy danych
Forum PHP.pl > Forum > Bazy danych > MySQL
koptus
Przerabiam php5, apache i mysql z helionu, jednak podczas wgrywania bazy z pliku z przykładów występuje błąd.

plik:
  1. CREATE TABLE `movie` (
  2. `movie_id` int(11) NOT NULL AUTO_INCREMENT,
  3. `movie_name` varchar(255) NOT NULL DEFAULT '',
  4. `movie_type` tinyint(2) NOT NULL DEFAULT '0',
  5. `movie_year` int(4) NOT NULL DEFAULT '0',
  6. `movie_leadactor` int(11) NOT NULL DEFAULT '0',
  7. `movie_director` int(11) NOT NULL DEFAULT '0',
  8. PRIMARY KEY (`movie_id`),
  9. KEY `movie_type` (`movie_type`,`movie_year`)
  10. ) ENGINE=MyISAM PACK_KEYS=0 DEFAULT CHARSET=latin2 AUTO_INCREMENT=4
  11.  
  12. INSERT INTO `movie` VALUES (1, 'Bruce Wszechmogący', 5, 2003, 1, 2);
  13. INSERT INTO `movie` VALUES (3, 'Wielki Kanion', 2, 1991, 4, 3);
  14. INSERT INTO `movie` VALUES (2, 'Życie biurowe', 5, 1999, 5, 6);
  15.  
  16. CREATE TABLE `movietype` (
  17. `movietype_id` int(11) NOT NULL AUTO_INCREMENT,
  18. `movietype_label` varchar(100) NOT NULL DEFAULT '',
  19. PRIMARY KEY (`movietype_id`)
  20. ) ENGINE=MyISAM DEFAULT CHARSET=latin2 AUTO_INCREMENT=9 ;
  21.  
  22. INSERT INTO `movietype` VALUES (1, 'Science-fiction');
  23. INSERT INTO `movietype` VALUES (2, 'Dramat');
  24. INSERT INTO `movietype` VALUES (3, 'Przygoda');
  25. INSERT INTO `movietype` VALUES (4, 'Wojenny');
  26. INSERT INTO `movietype` VALUES (5, 'Komedia');
  27. INSERT INTO `movietype` VALUES (6, 'Horror');
  28. INSERT INTO `movietype` VALUES (7, 'Akcja');
  29. INSERT INTO `movietype` VALUES (8, 'Dla dzieci');
  30.  
  31. CREATE TABLE `people` (
  32. `people_id` int(11) NOT NULL AUTO_INCREMENT,
  33. `people_fullname` varchar(255) NOT NULL DEFAULT '',
  34. `people_isactor` tinyint(1) NOT NULL DEFAULT '0',
  35. `people_isdirector` tinyint(1) NOT NULL DEFAULT '0',
  36. PRIMARY KEY (`people_id`)
  37. ) TYPE=MyISAM PACK_KEYS=0 DEFAULT CHARSET=latin2 AUTO_INCREMENT=7 ;
  38.  
  39. INSERT INTO `people` VALUES (1, 'Jim Carrey', 1, 0);
  40. INSERT INTO `people` VALUES (2, 'Tom Shadyac', 0, 1);
  41. INSERT INTO `people` VALUES (3, 'Lawrence Kasdan', 0, 0);
  42. INSERT INTO `people` VALUES (4, 'Kevin Kline', 1, 0);
  43. INSERT INTO `people` VALUES (5, 'Ron Livingston', 0, 0);
  44. INSERT INTO `people` VALUES (6, 'Mike Judge', 0, 0);


błąd:
  1. zapytanie SQL:
  2.  
  3. CREATE TABLE `movie` (
  4.  
  5. `movie_id` int( 11 ) NOT NULL AUTO_INCREMENT ,
  6. `movie_name` varchar( 255 ) NOT NULL DEFAULT '',
  7. `movie_type` tinyint( 2 ) NOT NULL DEFAULT '0',
  8. `movie_year` int( 4 ) NOT NULL DEFAULT '0',
  9. `movie_leadactor` int( 11 ) NOT NULL DEFAULT '0',
  10. `movie_director` int( 11 ) NOT NULL DEFAULT '0',
  11. PRIMARY KEY ( `movie_id` ) ,
  12. KEY `movie_type` ( `movie_type` , `movie_year` )
  13. ) ENGINE = MYISAM PACK_KEYS =0DEFAULT CHARSET = latin2 AUTO_INCREMENT =4 INSERT INTO `movie` VALUES ( 1, 'Bruce Wszechmogący', 5, 2003, 1, 2 )
  14. MySQL zwrócił komunikat:
  15.  
  16. #1064 - Something is wrong in your syntax obok 'ENGINE=MyISAM PACK_KEYS=0 DEFAULT CHARSET=latin2 AUTO_INCREMENT=' w linii 10

Wiem, ze brakuje średnika, jednak po jego dodaniu nic sie nie zmienia. Mam phpMyAdmin 2.6.0-pl2.

Z góry dziękuje za pomoc smile.gif
misiek172
ID musi byc indexem aby dzialalo auto increment
koptus
Możesz mi podpowiedzieć jak to będzie wyglądało? Dopiero co raczkuje w php i mysql smile.gif
nevt
a gdzie podziałeś średnik który powinien zamykać to CREATE TABLE questionmark.gif
misiek172
`movie_id` INT NOT NULL AUTO_INCREMENT ,
.
.
.
.
INDEX ( `movie_id` )

lub tak:

`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
koptus
Czyli po zmianach powinno to wygladac tak?:
  1. CREATE TABLE `movie` (
  2. [b]`movie_id` INT NOT NULL AUTO_INCREMENT ,[/b]
  3. `movie_name` varchar(255) NOT NULL DEFAULT '',
  4. `movie_type` tinyint(2) NOT NULL DEFAULT '0',
  5. `movie_year` int(4) NOT NULL DEFAULT '0',
  6. `movie_leadactor` int(11) NOT NULL DEFAULT '0',
  7. `movie_director` int(11) NOT NULL DEFAULT '0',
  8. [b]INDEX ( `movie_id` ),[/b]
  9. PRIMARY KEY (`movie_id`),
  10. KEY `movie_type` (`movie_type`,`movie_year`)
  11. ) ENGINE=MyISAM PACK_KEYS=0 DEFAULT CHARSET=latin2 AUTO_INCREMENT=4
  12. [...]

Jak takie zapytanie wysyłam dostaje błąd:
  1. zapytanie SQL:
  2.  
  3. CREATE TABLE `movie` (
  4.  
  5. `movie_id` INT NOT NULL AUTO_INCREMENT ,
  6. `movie_name` varchar( 255 ) NOT NULL DEFAULT '',
  7. `movie_type` tinyint( 2 ) NOT NULL DEFAULT '0',
  8. `movie_year` int( 4 ) NOT NULL DEFAULT '0',
  9. `movie_leadactor` int( 11 ) NOT NULL DEFAULT '0',
  10. `movie_director` int( 11 ) NOT NULL DEFAULT '0',
  11. INDEX ( `movie_id` ) ,
  12. PRIMARY KEY ( `movie_id` ) ,
  13. KEY `movie_type` ( `movie_type` , `movie_year` )
  14. ) ENGINE = MYISAM PACK_KEYS =0DEFAULT CHARSET = latin2 AUTO_INCREMENT =4 INSERT INTO `movie` VALUES ( 1, 'Bruce Wszechmogący', 5, 2003, 1, 2 )
  15. MySQL zwrócił komunikat:
  16.  
  17. #1064 - Something is wrong in your syntax obok 'ENGINE=MyISAM PACK_KEYS=0 DEFAULT CHARSET=latin2 AUTO_INCREMENT=' w linii 11


EDIT: dodałem srednik i dostałem cos takiego
  1. REATE TABLE `movie` (
  2.  
  3. `movie_id` INT NOT NULL AUTO_INCREMENT , `movie_name` varchar( 255 ) NOT NULL DEFAULT '', `movie_type` tinyint( 2 ) NOT NULL DEFAULT '0', `movie_year` int( 4 ) NOT NULL DEFAULT '0', `movie_leadactor` int( 11 ) NOT NULL DEFAULT '0', `movie_director` int( 11 ) NOT NULL DEFAULT '0', INDEX ( `movie_id` ) , PRIMARY KEY ( `movie_id` ) , KEY `movie_type` ( `movie_type` , `movie_year` )
  4. ) ENGINE = MYISAM PACK_KEYS =0DEFAULT CHARSET = latin2 AUTO_INCREMENT =4
  5. MySQL zwrócił komunikat:
  6.  
  7. #1064 - Something is wrong in your syntax obok 'REATE TABLE `movie` (
  8. `movie_id` INT NOT NULL AUTO_INCREMENT ,
  9. ' w linii 1
misiek172
INDEX ( `movie_id` ) ,
PRIMARY KEY ( `movie_id` ) , masz tam tak napisane, wywal primary, czyli daj: sam

INDEX ( `movie_id` ) ,
koptus
zmienilem tak jak radziles, niestety
  1. CREATE TABLE `movie` (
  2. `movie_id` INT NOT NULL AUTO_INCREMENT ,
  3. `movie_name` varchar(255) NOT NULL DEFAULT '',
  4. `movie_type` tinyint(2) NOT NULL DEFAULT '0',
  5. `movie_year` int(4) NOT NULL DEFAULT '0',
  6. `movie_leadactor` int(11) NOT NULL DEFAULT '0',
  7. `movie_director` int(11) NOT NULL DEFAULT '0',
  8. INDEX ( `movie_id` ),
  9. KEY `movie_type` (`movie_type`,`movie_year`)
  10. ) ENGINE=MyISAM PACK_KEYS=0 DEFAULT CHARSET=latin2 AUTO_INCREMENT=4
  11. [...]

blad dalej wystepuje
  1. zapytanie SQL:
  2.  
  3. CREATE TABLE `movie` (
  4.  
  5. `movie_id` INT NOT NULL AUTO_INCREMENT ,
  6. `movie_name` varchar( 255 ) NOT NULL DEFAULT '',
  7. `movie_type` tinyint( 2 ) NOT NULL DEFAULT '0',
  8. `movie_year` int( 4 ) NOT NULL DEFAULT '0',
  9. `movie_leadactor` int( 11 ) NOT NULL DEFAULT '0',
  10. `movie_director` int( 11 ) NOT NULL DEFAULT '0',
  11. INDEX ( `movie_id` ) ,
  12. KEY `movie_type` ( `movie_type` , `movie_year` )
  13. ) ENGINE = MYISAM PACK_KEYS =0DEFAULT CHARSET = latin2 AUTO_INCREMENT =4 INSERT INTO `movie` VALUES ( 1, 'Bruce Wszechmogący', 5, 2003, 1, 2 )
  14. MySQL zwrócił komunikat:
  15.  
  16. #1064 - Something is wrong in your syntax obok 'ENGINE=MyISAM PACK_KEYS=0 DEFAULT CHARSET=latin2 AUTO_INCREMENT=' w linii 10

(dodanie srednika tez nie pomaga)
misiek172
chodzi tu o deflaut charset to jest zły zapisz

po 1 ze jest osobno tongue.gif

po 2: CHARACTER SET <- spróbuj to
teutates
A wszystko to zrobilbys recznie... w 15 minut:)
koptus
wywaliłem końcówki: ENGINE = MYISAM PACK_KEYS =0DEFAULT CHARSET = latin2 AUTO_INCREMENT =4 i dziala tongue.gif mam nadzieje ze nie maja dużego wpływu
misiek172
są domyślne także nie powinno nic być źle
nevt
zła kolejność parametrów... najpierw powinien być AUTO_INCREMENT a później DEFAULT CHARSET
koptus
Dzięki wszystkim za udzieloną pomoc, dobrze, że jest serwis zbierający społeczność związaną z php winksmiley.jpg
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.