|
| True / False i MySql Fra : Anders Holm Jensen |
Dato : 14-03-03 18:08 |
|
Hej
Hvis jeg skal et true / false felt i en MySql database, hvilke type skal jeg
så vælge ? Eller laver man det bare en type char på 1 i længde ?
--
Hilsen AHJ
| |
Jakob Andersen (14-03-2003)
| Kommentar Fra : Jakob Andersen |
Dato : 14-03-03 19:16 |
|
Anders Holm Jensen skrev:
> Hvis jeg skal et true / false felt i en MySql database, hvilke type skal jeg
> så vælge ? Eller laver man det bare en type char på 1 i længde ?
MySQL har ikke en decideret true/false type, men mange vælger at benytte et
enumfelt (indeholdende 1/0 "t"/"f" eller lign.) til formålet. Andre benytter
en tinyint.
--
Jakob Andersen
| |
Anders Holm Jensen (14-03-2003)
| Kommentar Fra : Anders Holm Jensen |
Dato : 14-03-03 19:25 |
|
"Jakob Andersen" <jakob@effectus.dk> skrev i en meddelelse
news:slrnb7472p.13d.jakob@dolomit.but.auc.dk...
> Anders Holm Jensen skrev:
> > Hvis jeg skal et true / false felt i en MySql database, hvilke type skal
jeg
> > så vælge ? Eller laver man det bare en type char på 1 i længde ?
>
> MySQL har ikke en decideret true/false type, men mange vælger at benytte
et
> enumfelt (indeholdende 1/0 "t"/"f" eller lign.) til formålet. Andre
benytter
> en tinyint.
Kan en enum indholde flere værdier ? eksempelvis 10,20,30,40,60 og så er det
kun de værdier man kan lægge ind ?
Hilsen AHJ
>
> --
> Jakob Andersen
| |
Jakob Andersen (14-03-2003)
| Kommentar Fra : Jakob Andersen |
Dato : 14-03-03 20:08 |
|
Anders Holm Jensen skrev:
> Kan en enum indholde flere værdier ? eksempelvis 10,20,30,40,60 og så er det
> kun de værdier man kan lægge ind ?
Jeg tror vist at jeg lige fik talt over mig med 1/0 værdier i ENUM eftersom
at man kun kan benytte strings i enum. Man specificerer hvilke værdier der
må benyttes i den pågældende ENUM kolonne i enten CREATE TABLE eller ALTER
TABLE udtykket.
Kig evt også på SET:
http://www.mysql.com/doc/en/ENUM.html
http://www.mysql.com/doc/en/SET.html
--
Jakob Andersen
| |
Anders Holm Jensen (14-03-2003)
| Kommentar Fra : Anders Holm Jensen |
Dato : 14-03-03 19:27 |
|
"Jakob Andersen" <jakob@effectus.dk> skrev i en meddelelse
news:slrnb7472p.13d.jakob@dolomit.but.auc.dk...
> Anders Holm Jensen skrev:
> > Hvis jeg skal et true / false felt i en MySql database, hvilke type skal
jeg
> > så vælge ? Eller laver man det bare en type char på 1 i længde ?
>
> MySQL har ikke en decideret true/false type, men mange vælger at benytte
et
> enumfelt (indeholdende 1/0 "t"/"f" eller lign.) til formålet. Andre
benytter
> en tinyint.
Og hvordan lægger man enum værdier ind ?
Hilsen AHJ
>
> --
> Jakob Andersen
| |
Mads Lie Jensen (14-03-2003)
| Kommentar Fra : Mads Lie Jensen |
Dato : 14-03-03 20:16 |
|
On Fri, 14 Mar 2003 18:07:48 +0100, "Anders Holm Jensen"
<dwoor@oncable.dk> wrote:
>Hvis jeg skal et true / false felt i en MySql database, hvilke type skal jeg
>så vælge ? Eller laver man det bare en type char på 1 i længde ?
Enum er oplagt.
--
Mads Lie Jensen - mads@gartneriet.dk - ICQ #25478403
http://www.gartneriet.dk
Lær af andres fejl
- du lever alligevel ikke længe nok til selv at prøve dem alle.
| |
Peter Brodersen (15-03-2003)
| Kommentar Fra : Peter Brodersen |
Dato : 15-03-03 14:59 |
|
On Fri, 14 Mar 2003 20:16:06 +0100, Mads Lie Jensen
<mads@gartneriet.dk> wrote:
>Enum er oplagt.
Eneste detalje er, at enum også tillader tomme værdier (ikke at
forveksle med NULL-værdier).
Et felt som enum('ja','nej') NOT NULL med 'ja' som default vil give
følgende resultat:
INSERT INTO tabel VALUES('ja'); // indsætter ja
INSERT INTO tabel VALUES('nej'); // indsætter nej
INSERT INTO tabel VALUES(''); // indsætter en tom streng
INSERT INTO tabel VALUES('foo'); // indsætter en tom streng
INSERT INTO tabel VALUES(); // indsætter ja
Det behøver der ikke at være noget mærkeligt i - men man bør stadigvæk
være opmærksom på at der i teorien kan opstå tilfælde, hvor feltet
hverken indeholder "ja" eller "nej".
--
- Peter Brodersen
| |
Jonas Koch Bentzen (14-03-2003)
| Kommentar Fra : Jonas Koch Bentzen |
Dato : 14-03-03 20:53 |
|
Anders Holm Jensen wrote:
>
> Hvis jeg skal et true / false felt i en MySql database, hvilke type skal
> jeg så vælge ? Eller laver man det bare en type char på 1 i længde ?
Jeg ville vælge smallint og så fylde 1 eller 0 i. På den måde er det
kompatibelt med SQL og vil derfor også virke, hvis dit program pludselig én
dag skal kunne køre på en anden databaseserver end lige MySQL.
MySQL's tinyint er også en mulighed, men jeg mener ikke, den datatype er en
del af standard-SQL.
--
Jonas Koch Bentzen
http://findhim.com/
| |
Thorbjoern Ravn Ande~ (15-03-2003)
| Kommentar Fra : Thorbjoern Ravn Ande~ |
Dato : 15-03-03 12:47 |
|
"Anders Holm Jensen" <dwoor@oncable.dk> writes:
> Hvis jeg skal et true / false felt i en MySql database, hvilke type skal jeg
> så vælge ? Eller laver man det bare en type char på 1 i længde ?
Jeg forsøgte for et par år siden at lave en J/N værdi ved et begrænset
1-tegnsfelt. Det virkede ikke. Kawær det er fikset siden.
--
Thorbjørn Ravn Andersen
http://unixsnedkeren.dk/ravn
| |
|
|