Avatar billede brianmilan Juniormester
10. oktober 2006 - 12:58 Der er 13 kommentarer og
1 løsning

Default NULL

Hej,

Jeg har oprettet en tabel, men når jeg går ind i MySQL Query Browser og ser den der, står der ikke NULL i feltet men det er istedet helt blankt, ved i hvordan jeg manuelt kan sætte feltet til default at være NULL?

Hilsen Brian :-)
Avatar billede iver123 Nybegynder
10. oktober 2006 - 13:30 #1
Har du prøvet med PHPMyAdmin som har et meget brugervenligt Interface.
Avatar billede brianmilan Juniormester
10. oktober 2006 - 13:32 #2
Hej, Ja det har jeg prøvet, men der kunne jeg desværre ikke få den til at sætte den til default..
Avatar billede sw_red_6 Nybegynder
10. oktober 2006 - 13:34 #3
øhh er det ikke sådan at hvis et felt er helt blankt er det NULL?
eller misforstår jeg et eller andet?
nå men du kan jo oprette tabellen med noget i den her retning:
create table TEST (
id int not null auto_increment,
felt_navn varchar(255) not null default NULL
);
Avatar billede jensgram Nybegynder
10. oktober 2006 - 13:37 #4
sw_red_6 > Øh? Der modsiger du da vist dig selv ;)
Avatar billede sw_red_6 Nybegynder
10. oktober 2006 - 13:44 #5
måske... det er jo muligt at have en tekst-streng hvor der står NULL, men hvis det eksempel jeg kommer med skal bruges skal NULL pakkes ind i '' eller ""
desuden skriver jeg også "noget i retning af" ;-)
Avatar billede b_ Nybegynder
10. oktober 2006 - 14:05 #6
Et blankt felt og NULL er ikke det samme!

create table TEST (
id int not null auto_increment,
felt_navn varchar(255) default NULL
);

Prøv denne i stedet
Avatar billede jensgram Nybegynder
10. oktober 2006 - 14:31 #7
Ja, jeg hæftede mig bare ved "not null default NULL", hvor du sætter en default værdi, der altid vil modsige din constraint (NOT NULL).
Avatar billede brianmilan Juniormester
10. oktober 2006 - 14:45 #8
Tror i godt at jeg kan lave min eksisterende tabel om til at de steder hvor der ikke står nogen data i felterne, at der kommer til at står NULL?
Avatar billede b_ Nybegynder
10. oktober 2006 - 15:07 #9
Hvis din db ikke er så stor kan du gøre det manuelt.

Men en tommelfingerregel jeg lærte var helst ikke at have NULL værdier.. Hvorfor er det lige at der skal stå NULL?
Avatar billede jensgram Nybegynder
10. oktober 2006 - 15:19 #10
UPDATE tabel SET vaerdi = NULL WHERE vaerdi = "";

b_ > NULL kan vel være lige så godt som en tom streng?
Avatar billede brianmilan Juniormester
10. oktober 2006 - 15:41 #11
Tusinde tak for hjælpen Jensgram :-) Kunne jeg få dig til at lægge et svar?
Det et fordi at jeg har lavet en funktion som undersøger om der ligger en trailer i min dvd-database, og hvis der er en trailer til dvd filmen skal den vise et lille ikon, og på de film hvor jeg ikke har lagt trailere ind skal den ikke vise noget ikon, og der bruger jeg denne her kode:

<?php
if (!is_null($Trailer)){
echo "<a href=\"$Trailer" target=\"_blank\"><img src=\"Trailer.gif\" width=\"65\" height=\"36\" border=\"0\"></a>";
} else {
echo " ";
}
?>
Avatar billede b_ Nybegynder
10. oktober 2006 - 17:44 #12
Du kunne også bare have gjort det med "!empty", så havde du sluppet for at ændre felterne til null.

Husk at sætte null som default ellers skal du hele tiden opdatere din db
Avatar billede jensgram Nybegynder
10. oktober 2006 - 19:50 #13
Ja, gør som b_ siger og sæt "DEFAULT NULL" på den aktuelle attribut (husk at fjerne evt. "NOT NULL"-constraint.

Svar.
Avatar billede brianmilan Juniormester
10. oktober 2006 - 22:36 #14
Tak :-)
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