Avatar billede mjl Nybegynder
17. januar 2013 - 16:45 Der er 8 kommentarer og
1 løsning

Default lig med 2 i databasen

Hej der,

Kan man ikke få MySQL til at sætte en default værdi i et "felt", hvis den ikke er sat af brugeren ...?

Hvis jeg f.eks. har en INT(11) der der skal indeholde tallet "2" pr. default, hvis DB'en ikke har modtaget anden værdi ...

hilsen Martin
Avatar billede arne_v Ekspert
17. januar 2013 - 17:06 #1
CREATE TABLE noget (
    ...
    felt INTEGER DEFAULT 2,
    ...
);
Avatar billede mjl Nybegynder
17. januar 2013 - 17:25 #2
Default 2 bliver bare til 0
Avatar billede mjl Nybegynder
17. januar 2013 - 18:14 #3
Nå, det kan man nok ikke - har søgt som en gal, men finder intet der kan gøre det ... jeg må bare få PHP til at ændre 0 til 2 inden den smider i DB'en.

Tak for forsøget arne_v
Avatar billede erikjacobsen Ekspert
17. januar 2013 - 19:48 #4
create table testdefault (
  id integer default 2,
  t varchar(255)
)

(den bliver myisam) efterfulgt af

insert into testdefault (t) values ('kaniner')

hvor der ikke sættes en værdi for id, giver rækken

    2    kaniner

Så ... det virker da
Avatar billede michael_stim Ekspert
17. januar 2013 - 20:55 #5
Men det lyder jo som om du giver feltet værdien 0, når du smider i tabellen, fra php. Så overskriver den jo default værdien.
Avatar billede arne_v Ekspert
18. januar 2013 - 02:40 #6
mysql> CREATE TABLE noget (
    ->    id INTEGER NOT NULL,
    ->    felt INTEGER DEFAULT 2,
    ->    PRIMARY KEY (id)
    -> );
Query OK, 0 rows affected (0.00 sec)

mysql>
mysql> INSERT INTO noget VALUES(1,77);
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO noget VALUES(2,NULL);
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO noget(id) VALUES(3);
Query OK, 1 row affected (0.00 sec)

mysql>
mysql> SELECT * FROM noget;
+----+------+
| id | felt |
+----+------+
|  1 |  77 |
|  2 | NULL |
|  3 |    2 |
+----+------+
3 rows in set (0.00 sec)
Avatar billede mjl Nybegynder
18. januar 2013 - 19:45 #7
Ok ... tak!

Læg svar for points ...
Avatar billede erikjacobsen Ekspert
18. januar 2013 - 19:50 #8
Ingen point til mig, tak.
Avatar billede arne_v Ekspert
18. januar 2013 - 19:58 #9
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester