Ongelma:
"To create tables by pasting the code into the MySQL command-line client."
ja
koodi on tämä
CREATE TABLE books ( title_id INT NOT NULL AUTO_INCREMENT, title VARCHAR (150), pages INT, PRIMARY KEY (title_id)); CREATE TABLE authors ( author_id INT NOT NULL AUTO_INCREMENT, title_id INT NOT NULL, author VARCHAR (125), PRIMARY KEY (author_id));
Eli Miten laitan tuon koodin MySQL command-line clientiin?
Käytän Wamp:pia. Tuonhan voi näpytellä MySQL konsoliin kirjain kirjaimelta, mutta ongelma on saada se pastetettua suoraan.
Olen yrittänyt saada koodia SQLite-Manageriin selaimella (tuli mukana wampissa), mutta siinä onnistumatta.
Laiton koodin SQL suorittimeen ja table books ilmestyi. En kuitenkaan löytänyt mistään tätä tulosta, joka pitäisi ilmestyä:
mysql> CREATE TABLE books ( -> title_id INT NOT NULL AUTO_INCREMENT, -> title VARCHAR (150), -> pages INT, -> PRIMARY KEY (title_id)); Query OK, 0 rows affected (0.06 sec) mysql> CREATE TABLE authors ( -> author_id INT NOT NULL AUTO_INCREMENT, -> title_id INT, -> author VARCHAR (125), -> PRIMARY KEY (author_id)); Query OK, 0 rows affected (0.06 sec)
Olen myös yrittänyt suorittaa koodia sqlite-managerissa firefox addonissa, mutta siinä onnistumatta. Saan tälläisen viestin "Likely SQL syntax error:".
Ehkä joku teistä tietää, kuinka näitä MySQL selainpohjaisia konsoleita käytetään.
Tallenna tiedostoon create-tables.sql
ja komenna mysql mydb < create-tables.sql
.
tsuriga kirjoitti:
Tallenna tiedostoon
create-tables.sql
ja komennamysql mydb < create-tables.sql
.
Tein tiedoston create-tables.sql, johon laitoin tuon ylimmän koodin. Kirjoitin MySQL konsoliin tuon komennon "mysql mydb < create-tables.sql". Kokeilin myös tätä "mydb < create-tables.sql", mutta mitään ei tapahtunut.
Sitten kokeilin tuota komentoa SQLiteManagerissa: ensin otin tuon tiedoston suoritettavaksi ja laitoin tuon komennon "mysql mydb < create-tables.sql" suoritettavaksi. Saan tälläisen viestin:
Error line(s) : 1 Error : SQL logic error or missing database table books already exists
Mutta table booksia ei löydy mistään, kun sen pitäisi näyttää samalta kuin tuo edellisen viestini toinen laatikko.
Miten saan tuon oikean tuloksen, joka on tuo edellisen viestini toinen laatikko, näkyviin?
Nyt pääsin hieman eteenpäin.
Talletin tuon filen, ja ajoin tän mysql command clinessä:
\. C:\wamp\www\create-tables.sql
joka antaa tämän:
ERROR 1046 (3D000): No database selected mysql>
Tuo antaa ymmärtää, ettei database ole valittuna.
Yritin ratkaista tuota tällä:
\. C:\wamp\www\create-tables.sql select mydb
joka antaa error 2:n.
Ja tällä
\. 'C:\wamp\www\create-tables.sql' select mydb
joka antaa taas error 22:n.
Ehkä tuo komento select mydb on väärä.
Mutta miten muuten voin valita databasen?
USE tietokanta
Tuo sinne sql-tiedostoon.
Kiitos!
Nyt alkoi tapahtua, kun laitoin tuon "Use mysql" komennon lisäksi.
Sain tälläisen viestin:
Database changed
Query OK, 0 rows affected
Query OK, 0 rows affected
Mutta miten pääsen näkemään tuon tietokannan?
Yritin tätä komentoa:
SELECT * FROM books
Yritin myös tätä komentoa:
Describe books
Mutta ei anna mitään. Tuo books on taulukon nimi.
Tuo mysql mydb -t < create-tables.sql
siis komentokehoitteeseen/-terminaaliin, ei mysql:n vastaavaan.
Komento jaoteltuna osiin
mysql // käynnistetään mysql mydb // valitaan käytettävä tietokanta -t // pyydetään taulukkomuotoinen tulostus < create-tables.sql // syötetään ohjelmaan create-tables.sql-tiedoston sisältö
Lisäsin esimerkkiin tuon -t parametrin jos se vaikka auttaisi.
Katsoin, ettei minulla ollut tuon nimistä tietokantaa kuin mydb, vain information_schema, test, mysql ja sql.
Yritin kuitenkin ajaa tuota koodia ja saan tämän varoituksen:
ERROR 1064 (42000)
joka valittaa erroria sql syntaxissa.
Muutin tuota koodia niin, että viimeinen rivi on:
< C:\wamp\www\create-tables.sql
joka antaa varoituksen:
Show warnings disabled. Show warnings disabled.
Koodilaatikon sisällön oli siis tarkoitus vain ja ainoastaan havainnollistaa komennon eri vaiheita, tuollaisenaan ei ole tarkoituskaan toimia vaan siihen Windowsin komentoriville koko pötkö putkeen niin kuin koodilaatikon sisältävässä viestissäkin on alussa esitetty. Ja tietokannan kohdalle vaihdat tietenkin sen tietokannan, minne ne taulut tahdot luoda.
Kiitos korjauksesta!
Yritin tätä:
mysql mysql < create-tables.sql;
Jossa toinen mysql on tietokannan nimi.
Mutta saan tämän viestin:
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 'mysql mysql < create-tables.sql' at line 1
Kirjotat sen edelleen väärään paikkaan.
C:\> mysql mydb -t < create-tables.sql
EI
mysql> mysql mydb -t < create-tables.sql
Huomaa myös, että MySQL:ssä on oletuksena valmiina mysql-niminen tietokanta, joka sisältää mm. käyttäjätiedot. Oletettavasti et halua koskea siihen.
Yritin tuota koodia cmd:ssä ja saan tämän:
C:\>mysql 'mysql' is not recognized as an internal or external command, operable program or batch file.
Tuo virhe liittyy jotenkin XP:hen. Suoritin tämän sivuston: http://www.php-mysql-tutorial.com/mysql-tutorial/start-mysql-client-server.php
viimeisen neuvon: lisäsin tämän c:\mysql\bin environt variableihin tuloksetta.
Vaikka tämä nyt on jo vissiin ratkaistu, kukaan ei ole antanut näitä:
Siihen ikkunaan (kuten myös windowsin komentoriville) voi kopioida sitä tekstiä painamalla sitä hiiren kakkosnappulaa, ja sieltä sitten. CTRL-V ei siis toimi.
Toinen vaihtoehto tuon ratkaisemiseen olisi voinut olla tekstitiedosto, joka sisältä create table ..., lauseen. Jos tekstitiedosto on vaikka C:\table.sql, niin sen voi sieltä mysql-konsolista laittaas source-komennolla:
source C:\table.sql
Muistathan sitten myös laittaa siihen tekstitiedostoon use <kannan_nimi>, tai sitten vaihtoehtoisesti valita sen tietokannan sieltä konsolista ennen tuon tiedoston lisäystä.
"Leikkasin sipulin viipaleiksi vaikka ohjeessa käskettiin leikata tomaatti. Ilmeisesti viipalointi meni pieleen, kun ei näy tulleen tomaattiviipaleita?"
Kyllä minä ainakin olen sitä mieltä, että jos ensimmäisellä konstilla taulu ilmestyy, kaiken pitäisi olla kunnossa. Kaikki MySQL-klientit eivät tulosta samanlaisia ilmoituksia, joten ei ole mitään syytä säikähtää, vaikkei oppaan mukaista tulostetta näy, kun ei kerran ole oppaan mukaisia välineitäkään. Jos kaikki toimii, lopeta ihmetteleminen ja jatka eteenpäin. MySQL-komentoriviasiakasohjelma ei ole lainkaan välttämätön työkalu, joten jos et välttämättä koe sitä tarvitsevasi, voit jättää senkin etsimisen nyt sikseen.
punppis kirjoitti:
Siihen ikkunaan (kuten myös windowsin komentoriville) voi kopioida sitä tekstiä painamalla sitä hiiren kakkosnappulaa, ja sieltä sitten. CTRL-V ei siis toimi.
Tuo on hyvä vinkki. Tämän avulla pärjään ilman noita ohjelmia.
Aihe on jo aika vanha, joten et voi enää vastata siihen.