Eli PhpMyAdmin:lla tein kannan, johon importoin dumpin. Kuitenkin nyt tiettyjen kenttien määrityksessä on jotain häikkää, koska kenttiin tallennetuissa arvoissa (VARCHAR) ei näy etunollia, mikäli sinne tallentuu numeerinen arvo. Kuinka nuo etunollat saa mukaan?
MySQL ja etunollat
databeissi
7764
0Äänestä
Muut lukivat myös
Odottaa vastausta
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 7
Vanhimmat
>...importoin dumpin.
Millä tehty ja mikä formaatti. Näkyykö etunollat siinä ja vielä "lainausmerkeissä".
VARCHAR on puhtaasti merkkitietoa joten siinä näkyy kaikki siihen tallenettu tieto, myös etunollat.
En ole koskaan nähnyt MySQL:n enkä minkään muunkaan DBMS:n tekevän niin.
Dumppi on tehty SQliten kannasta sen omalla komentorivisoftalla. Etunollat näkyvät siinä dumpissa ja ne numeeriset arvot ovat lainausmerkkien sisällä. Sitä minäkin ihmettelin, että miksi MySQL ei tajua etunollia, en ole ennemmin tämmöiseen törmännyt. Voisiko merkistökoodauksella on väliä? Hallinnoin MySQL-kantaa phpMyAdminilla.
Eivätpä ne arvot muuten olekkaan heittomerkkien sisällä siinä dumpissa.
Nyt näkyy etunollat, kun korjasin käsin dumppiin yhden arvon, eli laitoin lainausmerkit. Minkähän tyyppisenä arvona MySQL sitten tulkistee nuo arvot? Schemassa kun on määritetty VARCHAR, niin eikös näiden silti pitäisi näkyä kokonaisina lukuina?
Ei MySQL sieltä mitään tiputa tai tulkitse. VARCHAR:ille pitää määritellä pituus, 1-255 merkkiä. Jos merkkijonot ovat pidempiä, käytä esim MEDIUMTEXT:iä... tai LONGTEXT:iä.
Tietotyyppinä suosittelen UTF-8:n käyttämistä, säästyy monelta harmilta.
Kylläpä sitä nyt ajatustypotetaan. :)