|
| Brug af eksempler fra bog Fra : Anders Boholdt-Peter~ |
Dato : 27-07-06 15:35 |
|
Hej,
Jeg har hos mit webhotel netop bestilt en MySQL-database.
For bedre at kunne forstå brugen af MySQL, har jeg skaffet en bog med navn
Tips & Tricks til ASP og SQL.
Mit problem er, at jeg ikke kan få lov til at uploade de filer, som følger
med bogen til mit webhotel.
Jeg har rettet indholdet af filen, så den burde indeholde mit eget
databasenavn.
Jeg har forsøgt at uploade filen via php-admin, og har gjort det på følgende
måde:
1. Logget ind på PHP-Admin.
2. Valgt min database, og herefter SQL.
3. Jeg har valgt filens placering umidelbart under teksten "Kør
SQL-forspørgsel(er) på database".
Har jeg gjort noget forkert, hvis ja, hvad er det så?
De filer jeg omtaler kan downloades som en ZIP-fil fra følgende adresse:
http://www.globe.dk/download/files/ttaspsql.zip
Jeg har rodet med det som ligger i mappen afstemning.
Er der eventuelt en derude, som har mulighed for at kikke på det?
På forhånd tak for hjælpen!
--
/ Anders
http://www.boholdt-petersen.dk
| |
Martin (27-07-2006)
| Kommentar Fra : Martin |
Dato : 27-07-06 20:59 |
|
Anders Boholdt-Petersen wrote:
> Hej,
>
> Jeg har hos mit webhotel netop bestilt en MySQL-database.
>
> For bedre at kunne forstå brugen af MySQL, har jeg skaffet en bog med navn
> Tips & Tricks til ASP og SQL.
>
> Mit problem er, at jeg ikke kan få lov til at uploade de filer, som følger
> med bogen til mit webhotel.
Filer? - Er det så sql filer, eller ASP filer, eller hvad er det?
>
> Jeg har rettet indholdet af filen, så den burde indeholde mit eget
> databasenavn.
>
> Jeg har forsøgt at uploade filen via php-admin, og har gjort det på følgende
> måde:
>
> 1. Logget ind på PHP-Admin.
>
> 2. Valgt min database, og herefter SQL.
>
> 3. Jeg har valgt filens placering umidelbart under teksten "Kør
> SQL-forspørgsel(er) på database".
Hvis ovenstående ikke virker, så kan du åbne sql filerne med fx
notesblokken, kopier alt teksten, og trykke på knappen "SQL" når du har
valgt din database over i venstre side.
Så indsætter du den kopierede tekst ind i tekstarealet og trykker på
knappen.
Hvis det så ikke virker, så må du hellere komme med fejlmeddelsen som
SQL fortæller dig, så kan vi måske finde ud af HVORFOR det ikke virker :)
| |
Anders Boholdt-Peter~ (27-07-2006)
| Kommentar Fra : Anders Boholdt-Peter~ |
Dato : 27-07-06 22:00 |
|
"Martin" <news@natten-i.dk> skrev i en meddelelse
news:44c91ab3$0$15787$14726298@news.sunsite.dk...
> Filer? - Er det så sql filer, eller ASP filer, eller hvad er det?
SQL-filer, samt nogle ASP-filer, som man kan uploade der viser funktionen i
praksis.
> Hvis ovenstående ikke virker, så kan du åbne sql filerne med fx
> notesblokken, kopier alt teksten, og trykke på knappen "SQL" når du har
> valgt din database over i venstre side.
> Så indsætter du den kopierede tekst ind i tekstarealet og trykker på
> knappen.
>
> Hvis det så ikke virker, så må du hellere komme med fejlmeddelsen som SQL
> fortæller dig, så kan vi måske finde ud af HVORFOR det ikke virker :)
Jeg har lige forsøgt med ovenstående, og det virker ikke.
Selve den fil jeg vil uploade opretter hvis den ellers virker i følge bogen
en tabel til noget afstemningshaløj, som jeg så skal sætte mig ind i hvis
det virker.
Filen har navnet create_poll_tables.SQL , og indeholder følgende kode:
---
use boholdt_petersen_dk_db
CREATE TABLE PollInfo (
pollid int identity NOT NULL PRIMARY KEY,
pollname varchar(250) NOT NULL,
startdate datetime NOT NULL,
enddate datetime NOT NULL
)
CREATE TABLE PollAnswers (
answerid int identity NOT NULL PRIMARY KEY,
refpollid int NOT NULL,
answer varchar(250) NOT NULL,
votes int NOT NULL DEFAULT 0
)
---
I bogen skriver de, at man skal bruge en database ved navn TTASP, men jeg
ved ikke, om man hos mit webhotel kan omdøbe databaserne, derfor har jeg
udskiftet TTASP med mit eget databasenavn.
Jeg får følgende fejl fra databasen:
---
Fejl
SQL-forespørgsel:
USE BOHOLDT_PETERSEN_DK_DB CREATE TABLE PollInfo(
pollid intidentity NOT NULL PRIMARY KEY ,
pollname varchar( 250 ) NOT NULL ,
startdate datetime NOT NULL ,
enddate datetime NOT NULL
) CREATE TABLE PollAnswers(
answerid intidentity NOT NULL PRIMARY KEY ,
refpollid int NOT NULL ,
answer varchar( 250 ) NOT NULL ,
votes int NOT NULL DEFAULT 0
)
MySQL returnerede:
Dokumentation
#1064 - 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
'CREATE TABLE
PollInfo (
pollid int identity NOT NULL PRIMARY KEY,
pollname' at line 3
---
Jeg siger på forhånd mange tak for eventuelle svar.
--
/ Anders
http://www.boholdt-petersen.dk
| |
Michael Weber (28-07-2006)
| Kommentar Fra : Michael Weber |
Dato : 28-07-06 08:07 |
|
"Anders Boholdt-Petersen" <post-REMOVETHIS-@boholdt-petersen.dk> skrev i en
meddelelse news:44c9293b$0$67264$157c6196@dreader2.cybercity.dk...
> "Martin" <news@natten-i.dk> skrev i en meddelelse
> news:44c91ab3$0$15787$14726298@news.sunsite.dk...
> > Filer? - Er det så sql filer, eller ASP filer, eller hvad er det?
>
> SQL-filer, samt nogle ASP-filer, som man kan uploade der viser funktionen
i
> praksis.
>
> > Hvis ovenstående ikke virker, så kan du åbne sql filerne med fx
> > notesblokken, kopier alt teksten, og trykke på knappen "SQL" når du har
> > valgt din database over i venstre side.
> > Så indsætter du den kopierede tekst ind i tekstarealet og trykker på
> > knappen.
> >
> > Hvis det så ikke virker, så må du hellere komme med fejlmeddelsen som
SQL
> > fortæller dig, så kan vi måske finde ud af HVORFOR det ikke virker :)
>
> Jeg har lige forsøgt med ovenstående, og det virker ikke.
>
> Selve den fil jeg vil uploade opretter hvis den ellers virker i følge
bogen
> en tabel til noget afstemningshaløj, som jeg så skal sætte mig ind i hvis
> det virker.
>
> Filen har navnet create_poll_tables.SQL , og indeholder følgende kode:
> ---
> use boholdt_petersen_dk_db
>
> CREATE TABLE PollInfo (
> pollid int identity NOT NULL PRIMARY KEY,
> pollname varchar(250) NOT NULL,
> startdate datetime NOT NULL,
> enddate datetime NOT NULL
> )
>
>
> CREATE TABLE PollAnswers (
> answerid int identity NOT NULL PRIMARY KEY,
> refpollid int NOT NULL,
> answer varchar(250) NOT NULL,
> votes int NOT NULL DEFAULT 0
> )
> ---
>
> I bogen skriver de, at man skal bruge en database ved navn TTASP, men jeg
> ved ikke, om man hos mit webhotel kan omdøbe databaserne, derfor har jeg
> udskiftet TTASP med mit eget databasenavn.
>
> Jeg får følgende fejl fra databasen:
> ---
> Fejl
>
> SQL-forespørgsel:
>
> USE BOHOLDT_PETERSEN_DK_DB CREATE TABLE PollInfo(
> pollid intidentity NOT NULL PRIMARY KEY ,
> pollname varchar( 250 ) NOT NULL ,
> startdate datetime NOT NULL ,
> enddate datetime NOT NULL
> ) CREATE TABLE PollAnswers(
> answerid intidentity NOT NULL PRIMARY KEY ,
> refpollid int NOT NULL ,
> answer varchar( 250 ) NOT NULL ,
> votes int NOT NULL DEFAULT 0
> )
>
> MySQL returnerede:
> Dokumentation
> #1064 - 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
> 'CREATE TABLE
> PollInfo (
> pollid int identity NOT NULL PRIMARY KEY,
> pollname' at line 3
> ---
>
> Jeg siger på forhånd mange tak for eventuelle svar.
>
> --
> / Anders
> http://www.boholdt-petersen.dk
>
>
>
Måske MySQL ikke lige "forstår" identity i linjen :
....
pollid int identity NOT NULL PRIMARY KEY,
....
Måske dette virker :
CREATE TABLE PollInfo (
pollid int NOT NULL AUTO_INCREMENT ,
pollname varchar(250) NOT NULL,
startdate datetime NOT NULL,
enddate datetime NOT NULL,
PRIMARY KEY(pollid)
)
CREATE TABLE PollAnswers (
answerid int NOT NULL AUTO_INCREMENT ,
refpollid int NOT NULL,
answer varchar(250) NOT NULL,
votes int NOT NULL DEFAULT 0,
PRIMARY KEY(answerid)
)
Med venlig hilsen
Michael Weber
| |
Anders Boholdt-Peter~ (28-07-2006)
| Kommentar Fra : Anders Boholdt-Peter~ |
Dato : 28-07-06 10:02 |
|
"Michael Weber" <michael@FJERNmichaelweber.dk> skrev i en meddelelse
news:44c9b78b$0$14027$edfadb0f@dread15.news.tele.dk...
> Måske MySQL ikke lige "forstår" identity i linjen :
> ...
> pollid int identity NOT NULL PRIMARY KEY,
> ...
>
> Måske dette virker :
>
> CREATE TABLE PollInfo (
> pollid int NOT NULL AUTO_INCREMENT ,
> pollname varchar(250) NOT NULL,
> startdate datetime NOT NULL,
> enddate datetime NOT NULL,
> PRIMARY KEY(pollid)
> )
>
>
> CREATE TABLE PollAnswers (
> answerid int NOT NULL AUTO_INCREMENT ,
> refpollid int NOT NULL,
> answer varchar(250) NOT NULL,
> votes int NOT NULL DEFAULT 0,
> PRIMARY KEY(answerid)
> )
Nej - desværre!
Nu får jeg følgende fejl fra serveren:
---
Fejl
SQL-forespørgsel:
USE boholdt_petersen_dk_db CREATE TABLE PollInfo(
pollid int NOT NULL AUTO_INCREMENT ,
pollname varchar( 250 ) NOT NULL ,
startdate datetime NOT NULL ,
enddate datetime NOT NULL ,
PRIMARY KEY ( pollid )
) CREATE TABLE PollAnswers(
answerid int NOT NULL AUTO_INCREMENT ,
refpollid int NOT NULL ,
answer varchar( 250 ) NOT NULL ,
votes int NOT NULL DEFAULT 0,
PRIMARY KEY ( answerid )
)
MySQL returnerede:
Dokumentation
#1064 - 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
'CREATE TABLE
PollInfo (
pollid int NOT NULL AUTO_INCREMENT ,
pollname varc' at line 3
---
Er der andre bud på hvad der kan være galt?
Ellers må jeg kontakte forlaget som har udgivet bogen.
På forhånd tak for eventuelle svar.
--
/ Anders
http://www.boholdt-petersen.dk
| |
Martin (28-07-2006)
| Kommentar Fra : Martin |
Dato : 28-07-06 10:17 |
|
Anders Boholdt-Petersen wrote:
>
> Er der andre bud på hvad der kan være galt?
Er det en bog om MSSQL (Microsoft SQL) eller er det om MySQL?
SQL'en ligner stortset hinanden, men ikke helt.
Det jeg ikke helt forstår, du bruger phpmyadmin, tror du så dit webhotel
understøtter ASP? ASP og PHP kan det samme, men er 2 vidt forskellige
metoder at komme til samme resulat. Dog er koden 100% ikke ens, der er
MEGET forskel på de 2 sprog.
Hvilke ting understøtter dit webhotel?
- Køb en bog der passer til det, eller bedre lån den på biblioteket,
for der går ikke mange uger før du kan mere end der står i bogen - Tro
mig :)
>
> Ellers må jeg kontakte forlaget som har udgivet bogen.
De har nok ikke skrevet forkert :)
>
> På forhånd tak for eventuelle svar.
>
| |
Anders Boholdt-Peter~ (28-07-2006)
| Kommentar Fra : Anders Boholdt-Peter~ |
Dato : 28-07-06 12:05 |
|
"Martin" <maa@scandesigns.dk> skrev i en meddelelse
news:44c9d5ab$0$15788$14726298@news.sunsite.dk...
> Er det en bog om MSSQL (Microsoft SQL) eller er det om MySQL?
Bogen hedder Tips og Tricks til ASP og SQL, og i bogen nævnes der noget med
MySQL.
> SQL'en ligner stortset hinanden, men ikke helt.
>
> Det jeg ikke helt forstår, du bruger phpmyadmin, tror du så dit webhotel
> understøtter ASP? ASP og PHP kan det samme, men er 2 vidt forskellige
> metoder at komme til samme resulat. Dog er koden 100% ikke ens, der er
> MEGET forskel på de 2 sprog.
Ja, mit webhotel understøtter ASP, MySQL, MSSQL, PHP og meget mere.
Jeg har blot bestilt en MySQL-database, og jeg logger ind med PHP-admin (det
står der når jeg er logget ind).
> Hvilke ting understøtter dit webhotel?
Se deres hjemmeside:
http://www.wannafind.dk
for mere info.
>> Ellers må jeg kontakte forlaget som har udgivet bogen.
>
> De har nok ikke skrevet forkert :)
Jeg har tidligere haft kontaktet dem, i forbindelse med hjælp til noget ASP,
hvor jeg havde sat det lidt op på en anden måde i forhold til hvad de havde
gjort da de skrev bogen.
--
/ Anders
http://www.boholdt-petersen.dk
| |
Martin (28-07-2006)
| Kommentar Fra : Martin |
Dato : 28-07-06 13:39 |
|
Anders Boholdt-Petersen wrote:
> Ja, mit webhotel understøtter ASP, MySQL, MSSQL, PHP og meget mere.
Det gør det så ikke...
Det kan ikke understøtte både ASP og PHP.
Standard Suite: understøtter kun deres standard CGI og en MSSQL database.
Luksus suite: understøtter ASP og enten MySQL eller MSSQL.
Linux Suite: understøtter PHP og enten MySQL eller MSSQL.
Business suite: der skal man vælge om man vil have PHP eller ASP
understøttelse.
Så nu er spørgsmålet... Hvad har du?
| |
Martin (28-07-2006)
| Kommentar Fra : Martin |
Dato : 28-07-06 13:44 |
|
Men her får du en SQL der virker i phpmyadmin.
CREATE TABLE `pollanswers` (
`answerid` int(11) NOT NULL auto_increment,
`refpollid` int(11) NOT NULL default '0',
`answer` varchar(255) NOT NULL default '',
`votes` int(11) NOT NULL default '0',
PRIMARY KEY (`answerid`)
) AUTO_INCREMENT=1 ;
CREATE TABLE `pollinfo` (
`pollid` int(11) NOT NULL auto_increment,
`pollname` varchar(255) NOT NULL default '',
`startdate` datetime NOT NULL default '0000-00-00 00:00:00',
`enddate` datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (`pollid`)
) AUTO_INCREMENT=1 ;
| |
Martin (28-07-2006)
| Kommentar Fra : Martin |
Dato : 28-07-06 13:51 |
|
Martin wrote:
Hov manglede lidt forklaring. :)
> CREATE TABLE `pollanswers` (
Opret tabel pollsanswers
> `answerid` int(11) NOT NULL auto_increment,
opret en kolonne med navnet answerid
det skal være en integer, med 11 karakter int(11)
Det betyder at den højeste værdi der kan være er: 9999999999
det må ikke have null værdi (NOT NULL)
den skal være auto_increment, dvs at den selv sætter næste ID ind
> `refpollid` int(11) NOT NULL default '0',
opret en kolonne med navnet refpollid
integer 11 karakter
ikke null værdi
default = '0' betyder at hvis man ikke indtaster noget i dette felt, så
bliver værdien 0 (0 er IKKE det samme som NULL værdi)
> `answer` varchar(255) NOT NULL default '',
Dette felt skal være et tekst felt, med plads til 255 karakter varchar(255)
> `votes` int(11) NOT NULL default '0',
> PRIMARY KEY (`answerid`)
Her sætter vi den primære nøgle til at være answerid
Primær nøgle betyder at der KUN må findes 1 af denne med samme værdi.
> ) AUTO_INCREMENT=1 ;
Her sætter vi hvad auto_increment nummeret skal starte med. Default er
altid 1
>
> CREATE TABLE `pollinfo` (
> `pollid` int(11) NOT NULL auto_increment,
> `pollname` varchar(255) NOT NULL default '',
> `startdate` datetime NOT NULL default '0000-00-00 00:00:00',
datetime er et felt af typen
ÅÅÅÅ-MM-DD TT:MM:SS
Altså år-måned-dag time-minut-sekund
> `enddate` datetime NOT NULL default '0000-00-00 00:00:00',
> PRIMARY KEY (`pollid`)
> ) AUTO_INCREMENT=1 ;
| |
Anders Boholdt-Peter~ (31-07-2006)
| Kommentar Fra : Anders Boholdt-Peter~ |
Dato : 31-07-06 05:41 |
|
"Martin" <maa@scandesigns.dk> skrev i en meddelelse
news:44ca061e$0$15791$14726298@news.sunsite.dk...
> Men her får du en SQL der virker i phpmyadmin.
Tak, det vil jeg kikke på.
Da jeg er helt ny hvad angår databaser, har jeg som jeg skrev tidligere i
gruppen stadig ikke helt forstået, hvad forskellen er på den kode som jeg
startede med at indsende, og den kode du har tilrettet - hvad er det?
Som jeg har spurgt om tidligere:
Kan mine problemer skyldtes, at Wannafind driver deres databaser fra
Linux-servere, men at bogen som jeg kikker i henvender sig til MySQL hostet
på Windows???
Jeg aner ikke en pind om det her, og har blot købt en Mysql-database, og så
troet, at den bog som jeg har fået fingrene i kunne sætte mig i gang.
Beklager hvis jeg har misforstået et eller andet!
--
/ Anders
http://www.boholdt-petersen.dk
| |
Anders Boholdt-Peter~ (31-07-2006)
| Kommentar Fra : Anders Boholdt-Peter~ |
Dato : 31-07-06 07:33 |
|
"Anders Boholdt-Petersen" <post-REMOVETHIS-@boholdt-petersen.dk> skrev i en
meddelelse news:44cd89e2$0$67256$157c6196@dreader2.cybercity.dk...
> Da jeg er helt ny hvad angår databaser, har jeg som jeg skrev tidligere i
> gruppen stadig ikke helt forstået, hvad forskellen er på den kode som jeg
> startede med at indsende, og den kode du har tilrettet - hvad er det?
Problemet er løst nu - Wannafind hoster deres MySQL-servere på Linux, og i
følge en supporter kunne det godt tyde på, at bogen som jeg taler om er
skrevet til MSSQL.
Beklager meget fejlen!!!
Sådan kan det gå, vi bliver klogere allesammen af de fejl vi begår!!!
Jeg kikker på hvilke muligheder jeg så har, og hvis jeg så har yderligere
spørgsmål når det kommer i luften, vender jeg tilbage.
--
/ Anders
http://www.boholdt-petersen.dk
| |
Anders Boholdt-Peter~ (30-07-2006)
| Kommentar Fra : Anders Boholdt-Peter~ |
Dato : 30-07-06 06:11 |
|
"Martin" <maa@scandesigns.dk> skrev i en meddelelse
news:44ca04f9$0$15785$14726298@news.sunsite.dk...
> Det kan ikke understøtte både ASP og PHP.
> Standard Suite: understøtter kun deres standard CGI og en MSSQL database.
> Luksus suite: understøtter ASP og enten MySQL eller MSSQL.
> Linux Suite: understøtter PHP og enten MySQL eller MSSQL.
> Business suite: der skal man vælge om man vil have PHP eller ASP
> understøttelse.
>
> Så nu er spørgsmålet... Hvad har du?
Jeg har Business med understøttelse af ASP, hvor jeg har købt en
MySQL-database som tilvalg (pris 15 kr om måneden) plusm moms.
Jeg ved at det godt kan lade sig gøre, for jeg kender andre som fint bruger
den samme løsning!
Kan det eventuelt være fordi, at bogen er skrevet til Windows, og Wannafind
hoster deres MySQL-servere fra Linux-servere?
--
/ Anders
http://www.boholdt-petersen.dk
| |
Jens Gyldenkærne Cla~ (28-07-2006)
| Kommentar Fra : Jens Gyldenkærne Cla~ |
Dato : 28-07-06 10:08 |
|
Anders Boholdt-Petersen skrev:
> SQL-forespørgsel:
>
> USE boholdt_petersen_dk_db CREATE TABLE PollInfo(
Står ovenstående på én linje i filen?
Det er ikke sikkert du har brug for en use-sætning, men hvis du
har, så lad den stå på en linje for sig selv:
USE boholdt_petersen_dk_db;
CREATE TABLE PollInfo(
....
(jeg kan ikke huske om der skal semikolon efter use-sætninger, men
prøv evt. med og uden).
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html
| |
Jens Gyldenkærne Cla~ (28-07-2006)
| Kommentar Fra : Jens Gyldenkærne Cla~ |
Dato : 28-07-06 14:57 |
|
Martin skrev:
> det skal være en integer, med 11 karakter int(11)
> Det betyder at den højeste værdi der kan være er: 9999999999
Nej. En int-kolonne kan gemme værdier fra -2147483648 til
2147483647 - uanset hvad der evt. angives i parantesen bagefter.
Tallet i parantesen angiver "display width" der bruges til at styre
visningen af feltet - men det lægger ingen begrænsninger på de
værdier der kan gemmes i feltet.
Se evt. manualen:
,---- [ 11.2 Numeric Types ]
| Another extension is supported by MySQL for optionally specifying
| the display width of an integer value in parentheses following the
| base keyword for the type (for example, INT(4)). This optional
| display width specification is used to left-pad the display of
| values having a width less than the width specified for the column.
|
| The display width does /not/ constrain the range of values that can
| be stored in the column, nor the number of digits that are
| displayed for values having a width exceeding that specified for
| the column.
`----
< http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html>
>> `pollname` varchar(255) NOT NULL default '',
[snip]
>> `enddate` datetime NOT NULL default '0000-00-00 00:00:00',
De to felter herover burde i mine øjne ikke have en standardværdi.
Et navn er som udgangspunkt ukendt (null) - ikke tomt, og det samme
gælder for datofeltet. Her er det i øvrigt kun muligt at benytte
0000...-værdien fordi MySQL er temmelig large med at sætte
restriktioner på datoer. I andre databaser ville sådan en default-
værdi ("0-dato") ikke være mulig.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html
| |
Martin (28-07-2006)
| Kommentar Fra : Martin |
Dato : 28-07-06 19:54 |
|
Jens Gyldenkærne Clausen wrote:
> Martin skrev:
>
>> det skal være en integer, med 11 karakter int(11)
>> Det betyder at den højeste værdi der kan være er: 9999999999
>
> Nej. En int-kolonne kan gemme værdier fra -2147483648 til
> 2147483647 - uanset hvad der evt. angives i parantesen bagefter.
Ikke når det er et auto_increment felt.
>>> `enddate` datetime NOT NULL default '0000-00-00 00:00:00',
>
> De to felter herover burde i mine øjne ikke have en standardværdi.
> Et navn er som udgangspunkt ukendt (null) - ikke tomt, og det samme
> gælder for datofeltet. Her er det i øvrigt kun muligt at benytte
> 0000...-værdien fordi MySQL er temmelig large med at sætte
> restriktioner på datoer. I andre databaser ville sådan en default-
> værdi ("0-dato") ikke være mulig.
Det er nu standarden som phpmyadmin sætter.
og det er nu ikke helt dumt, hvis man ikke ønsker en start/slut dato, så
er den bare nul, og vil blive sorteret som "sidst".
| |
Michael Weber (28-07-2006)
| Kommentar Fra : Michael Weber |
Dato : 28-07-06 23:56 |
|
"Martin" <news@natten-i.dk> skrev i en meddelelse
news:44ca5d3a$0$15785$14726298@news.sunsite.dk...
> Jens Gyldenkærne Clausen wrote:
> > Martin skrev:
> >
> >> det skal være en integer, med 11 karakter int(11)
> >> Det betyder at den højeste værdi der kan være er: 9999999999
> >
> > Nej. En int-kolonne kan gemme værdier fra -2147483648 til
> > 2147483647 - uanset hvad der evt. angives i parantesen bagefter.
>
> Ikke når det er et auto_increment felt.
Mystisk...
Note: There can be only one AUTO_INCREMENT column per table,
it must be indexed, and it cannot have a DEFAULT value.
An AUTO_INCREMENT column works properly only if it contains only positive
values.
Inserting a negative number is regarded as inserting a very large positive
number.
This is done to avoid precision problems when numbers "wrap" over from
positive to
negative and also to ensure that you do not accidentally get an
AUTO_INCREMENT column that contains 0.
http://dev.mysql.com/doc/refman/5.0/en/create-table.html
Lyder som om et auto_increment felt behandles som unsigned int.
Interessante ting kan ske hvis tidligere versioner af MySQL bruger
negative tal i et auto_increment felt og man opgradere til 5.0
>
> >>> `enddate` datetime NOT NULL default '0000-00-00 00:00:00',
> >
> > De to felter herover burde i mine øjne ikke have en standardværdi.
> > Et navn er som udgangspunkt ukendt (null) - ikke tomt, og det samme
> > gælder for datofeltet. Her er det i øvrigt kun muligt at benytte
> > 0000...-værdien fordi MySQL er temmelig large med at sætte
> > restriktioner på datoer. I andre databaser ville sådan en default-
> > værdi ("0-dato") ikke være mulig.
>
> Det er nu standarden som phpmyadmin sætter.
> og det er nu ikke helt dumt, hvis man ikke ønsker en start/slut dato, så
> er den bare nul, og vil blive sorteret som "sidst".
Med venlig hilsen
Michael Weber
| |
Jens Gyldenkærne Cla~ (28-07-2006)
| Kommentar Fra : Jens Gyldenkærne Cla~ |
Dato : 28-07-06 23:13 |
|
Martin skrev:
>> Nej. En int-kolonne kan gemme værdier fra -2147483648 til
>> 2147483647 - uanset hvad der evt. angives i parantesen
>> bagefter.
> Ikke når det er et auto_increment felt.
MySQL kan ikke arbejde med negative tal i et autoincrement-felt,
men pointen var at tallet efter int *ikke* angiver hvor store eller
små tal der kan gemmes i feltet - men blot hvordan mysql viser
tallet.
['0000-00-00 00:00:00']
> Det er nu standarden som phpmyadmin sætter.
> og det er nu ikke helt dumt, hvis man ikke ønsker en
> start/slut dato, så er den bare nul,
- tjo, men hvorfor ikke bare bruge NULL - der jo netop er beregnet
til den slags?
> og vil blive sorteret som "sidst".
NULL og "dummy-datoen" '0000-00-00' sorteres begge før almindelige
datoer, så der er ingen forskel der.
Der hvor der er forskel er ved sammenligninger - laver man
SELECT * FROM tabel WHERE dato < CURRENT_DATE; kommer dummy-datoer
med, mens NULL-værdier ikke er med. Så er spørgsmålet om det er en
rimelig antagelse at en default/dummy-dato er mindre end en kendt
dato.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html
| |
|
|