David Blomstrom <[EMAIL PROTECTED]> wrote: > --- "Robert A. Rosenberg" <[EMAIL PROTECTED]> wrote: >> At 20:36 -0700 on 06/02/2004, David Blomstrom wrote >> about >> Exporting/Importing Databases: >> >> >Third, my practice database includes half a dozen >> >tables, but only one made it online, followed by >> this >> >error message: >> > >> >Database USERNAME running on localhost >> > >> >Error >> > >> >SQL-query : >> > >> >CREATE TABLE `counties` ( >> >`SCode` varchar( 6 ) NOT NULL default '', >> >`NameC` varchar( 255 ) default NULL , >> >`TypeC` varchar( 255 ) default NULL , >> >`Seat` varchar( 255 ) default NULL , >> >`Area_MI` decimal( 10, 1 ) default NULL , >> >`Area_KM` decimal( 10, 1 ) default NULL , >> >`Pop_2000` int( 10 ) default NULL , >> >`Pop_1990` int( 10 ) default NULL , >> >`Pop_MI` decimal( 10, 1 ) default NULL , >> >`Pop_KM` decimal( 10, 1 ) default NULL , >> >`Race1` int( 10 ) default NULL , >> >`Race2` int( 10 ) default NULL , >> >`Amerindian` int( 10 ) default NULL , >> >`White` int( 10 ) default NULL , >> >`Black` int( 10 ) default NULL , >> >`Asian` int( 10 ) default NULL , >> >`Pacific_Island` int( 6 ) default NULL , >> >`Some_Other_Race` int( 10 ) default NULL , >> >`Hispanic` int( 10 ) default NULL , >> >`id` int( 6 ) NOT NULL AUTO_INCREMENT , >> >PRIMARY KEY ( `id` ) , >> >KEY `SCode` ( `SCode` ) , >> >CONSTRAINT `0_132` FOREIGN KEY ( `SCode` ) >> REFERENCES >> >`statesarticles` ( `SCode` ) ON UPDATE CASCADE >> >) TYPE = InnoDB AUTO_INCREMENT =3143 >> > >> >MySQL said: >> >#1005 - Can't create table >> './[USERNAME]/counties.frm' >> >(errno: 150) >> > >> >Do you know what this means? >> >> You just got caught with the old Referential >> Integrity Gotcha. It >> will not allow you to create countries since >> statesarticles does not >> (yet) exist. >> >> The fix is to temporally turn off RI during the >> load. Put this >> command at the start of your file: >> >> SET FOREIGN_KEY_CHECKS = 0; >> >> and this one at the end: >> >> SET FOREIGN_KEY_CHECKS = 1; >> >> and it will work. > > OK, is this something I can do in phpMyAdmin or > another software program, or do I have to open the > MySQL file itself? I've scarcely touched MySQL files, > but I found the file counties.frm, which I assume I > would open with Notepad, right? > > And then I can make SET FOREIGN_KEY_CHECKS = 0; the > very first line and SET FOREIGN_KEY_CHECKS = 1; the > very last line, after which I would EXPORT my > database, then import it, right? > > And since I like to plan ahead, is it OK to insert > these two lines in ALL my MySQL documents, just to be > prepared for this error? If I inadvertently stick > these lines in a file that doesn't have a foreign key, > will it cause a problem? > > Finally, after I've imported my database online, do I > have to go back and remove these two lines, or can I > just leave them there indefinitely as a safeguard? >
You should put these lines to the dump file that contains CREATE TABLE statements, not to the *.frm files. Then load tables. If you use command-line client you can do: mysql> SET FOREIGN_KEY_CHECKS = 0; mysql> SOURCE file_name; mysql> SET FOREIGN_KEY_CHECKS = 1; -- For technical support contracts, goto https://order.mysql.com/?ref=ensita This email is sponsored by Ensita.net http://www.ensita.net/ __ ___ ___ ____ __ / |/ /_ __/ __/ __ \/ / Egor Egorov / /|_/ / // /\ \/ /_/ / /__ [EMAIL PROTECTED] /_/ /_/\_, /___/\___\_\___/ MySQL AB / Ensita.net <___/ www.mysql.com -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]