Avatar billede netsrac Praktikant
04. juni 2001 - 23:53 Der er 8 kommentarer og
1 løsning

Nå lille mySQL, kan du ikke klare mere end 127 poster ad gangen ?

Får denne fejl:

Microsoft OLE DB Provider for ODBC Drivers error \'80004005\'

[TCX][MyODBC]Duplicate entry \'127\' for key 1

/webshop/admin/importsave.asp, line 11


Det sjove er at den eneste nøgle der er, er et auto nummerering felt, kan mysql ikke følge med ?

Hvad gør jeg ?
Avatar billede erikjacobsen Ekspert
04. juni 2001 - 23:56 #1
Den er nok en tinyint - du skal lave den til INT(11)
Avatar billede netsrac Praktikant
04. juni 2001 - 23:59 #2
Okay Erik, det virker, det bliver du altså nød til at forklare, jeg har gået her og troet at TINYINT(4) kunne indeholde 4 tal altså maks 9999 ?
Avatar billede erikjacobsen Ekspert
05. juni 2001 - 00:01 #3
Nej, det er bare ønsketænkning.... :)
Avatar billede erikjacobsen Ekspert
05. juni 2001 - 00:01 #4
INT(4) vil dog ...
Avatar billede netsrac Praktikant
05. juni 2001 - 00:03 #5
Men hvorfor ? :-)
Avatar billede morw Nybegynder
05. juni 2001 - 00:05 #6
Overvej desuden altid om der kan forekomme negative tal i feltet. Hvis ikke så lav feltet \'UNSIGNED\'.

I stedet for en INT kan du måske nøjes med
en MEDIUMINT. Med \'UNSIGNED\' rækker det fra 0 to 16777215. Så spare du en byte pr række.
Avatar billede erikjacobsen Ekspert
05. juni 2001 - 00:07 #7
Fordi en tinyint fylder 1 byte, dvs. værdier fra -128 til +127. En lille liste:

TINYINT            1 byte
SMALLINT          2 bytes
MEDIUMINT        3 bytes
INT                  4 bytes
Avatar billede netsrac Praktikant
05. juni 2001 - 00:12 #8
morw >> Hvordan skulle der kunne komme negative værdier i et auto nummererings felt ?

Erik >> Okay, så er tinyint hvis ikke velegnet til auto nummerering.
Avatar billede morw Nybegynder
05. juni 2001 - 00:20 #9
Det handler ikke om at auto nummererings felter skaber negative værdier ( det vil de ikke), men om at lave en optimal database der fylder mindst muligt.

tinyint er fin til auto nummererings felter. Hvis du ved du aldrig når over 255 (Der kan være 255 i tinyint hvis du vælger unsigned).

TINYINT[(M)] [UNSIGNED] [ZEROFILL]
A very small integer. The signed range is -128 to 127. The unsigned range is 0 to 255.
SMALLINT[(M)] [UNSIGNED] [ZEROFILL]
A small integer. The signed range is -32768 to 32767. The unsigned range is 0 to 65535.
MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]
A medium-size integer. The signed range is -8388608 to 8388607. The unsigned range is 0 to 16777215.
INT[(M)] [UNSIGNED] [ZEROFILL]
A normal-size integer. The signed range is -2147483648 to 2147483647. The unsigned range is 0 to 4294967295.
INTEGER[(M)] [UNSIGNED] [ZEROFILL]
This is a synonym for INT.
BIGINT[(M)] [UNSIGNED] [ZEROFILL]
A large integer. The signed range is -9223372036854775808 to 9223372036854775807. The unsigned range is 0 to 18446744073709551615

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

IT-JOB

IT-Universitetet i København

CIO

European Stonecraft

Intern Navision/BC Supporter

LINK Mobility

Support Specialist