Toon posts:

[MySQL] Primary key zetten lukt niet

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik probeer op een kolom een primary key te zetten, maar ik krijg van MySQL de melding dat het mislukt doordat er dubbele records inzitten.
Het probleem is dat MySQL de records 'financiële.html' en 'financiele.html' (dus zonder trema) als identiek ziet. Hier ben ik achter gekomen doordat de volgende SQL query beide records retourneert:
code:
1
SELECT * FROM tblTabel WHERE Filename = 'financiële.html'


Weet iemand hoe ik moet instellen dat MySQL dit als twee verschillende records ziet?

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Maak het varchar veld eens Binary.

meer info:
http://www.mysql.com/doc/en/CHAR.html

Programmer - an organism that turns coffee into software.


  • mOrPhie
  • Registratie: September 2000
  • Laatst online: 30-08 21:09

mOrPhie

❤️❤️❤️❤️🤍

Ik denk dat je een complexere character-set moet gebruiken. Hier vind je meer info:
http://www.mysql.com/doc/en/Character_sets.html

Een experimentele community-site: https://technobabblenerdtalk.nl/. DM voor invite code.


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 28-08 12:00

Janoz

Moderator Devschuur®

!litemod

Begrijp ik hieruit dat je je primary key op Filename gaat zetten?? Lijkt me niet de meest logische eigenlijk. Een key en een unique constraint kan ik nog inkomen, maar primary?

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Topicstarter
Hartelijk dank voor jullie reacties! LuCarD, je had gelijk, het lag aan de binary-instelling. :)

Janoz, doordat ik ook de directory bij de filename opsla, weet ik zeker dat de records uniek zijn: je kunt immers geen twee bestanden met dezelfde naam in dezelfde directory hebben staan. Vandaar dat ik er een primary key opzet...

  • cameodski
  • Registratie: Augustus 2002
  • Laatst online: 06-11-2023
Verwijderd schreef op 23 september 2002 @ 12:10:
Janoz, doordat ik ook de directory bij de filename opsla, weet ik zeker dat de records uniek zijn: je kunt immers geen twee bestanden met dezelfde naam in dezelfde directory hebben staan. Vandaar dat ik er een primary key opzet...
Primary key op zo'n veld is niet echt fantastisch voor de performance.
Misschien is een idee om een autonumber veld toe te voegen, die als PK dienst doet.

Never underestimate the power of


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Verwijderd schreef op 23 september 2002 @ 12:10:
Hartelijk dank voor jullie reacties! LuCarD, je had gelijk, het lag aan de binary-instelling. :)

Janoz, doordat ik ook de directory bij de filename opsla, weet ik zeker dat de records uniek zijn: je kunt immers geen twee bestanden met dezelfde naam in dezelfde directory hebben staan. Vandaar dat ik er een primary key opzet...

Nog niet geheel begrepen waarvoor exact een PK voor wordt gebruikt toevallig?

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

cameodski schreef op 23 september 2002 @ 13:31:
[...]

Primary key op zo'n veld is niet echt fantastisch voor de performance.
Misschien is een idee om een autonumber veld toe te voegen, die als PK dienst doet.
Ik ben het met je eens dat een varchar veld gebruiken als PK niet echt vaak voorkomt. Maar volgens mij geeft het geen performance verschil tussen een autonumber veld en de PK die hij gebruikt.

En of het verstandig is of niet is een beetje koffiedik kijken aangezien je niks weet over zijn db model.

Een PK kan vanalles zijn ook een combined veld.
http://www.mysql.com/doc/en/CREATE_TABLE.html

Programmer - an organism that turns coffee into software.


  • cameodski
  • Registratie: Augustus 2002
  • Laatst online: 06-11-2023
LuCarD schreef op 23 september 2002 @ 13:42:
Ik ben het met je eens dat een varchar veld gebruiken als PK niet echt vaak voorkomt. Maar volgens mij geeft het geen performance verschil tussen een autonumber veld en de PK die hij gebruikt.

En of het verstandig is of niet is een beetje koffiedik kijken aangezien je niks weet over zijn db model.
In deze situatie maakt het misschien niet uit, maar in heel veel situaties wel en dan niet zo'n klein beetje ook.
Primary keys kunnen in andere tabellen gebruikt worden als foreign keys en bedenk hoeveel verschil het uitmaakt als je een getal van 4 bytes of een stuk tekst van 255 bytes moet opzoeken.
Ook is in zo'n situatie niet te hopen dat de filename ooit wijzigt, want dan moet je dus ook alle verwijzingen gaan zitten aanpassen.

Never underestimate the power of


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 28-08 12:00

Janoz

Moderator Devschuur®

!litemod

Het is wel degelijk een aanslag op de performance. Het is immers veel simpeler te controleren of een integer veld al voorkomt dan dat een string al voorkomt.

Dat het ken betekend nog niet dat het goed is..

Het gecombineerde veld is van toepassing bij koppel tabellen. Hierin is juist de combinatie van 2 referenties uniek.

Topicstarter:

Als de bestandsnaam de referentiesleutel wordt vraag ik me af waarom je er uberhaupt een extra tabel voor aanmaakt...

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Janoz schreef op 23 september 2002 @ 14:04:
Het is wel degelijk een aanslag op de performance. Het is immers veel simpeler te controleren of een integer veld al voorkomt dan dat een string al voorkomt.
Huh?
Als je een autonummer veld zou gaan gebruiken moet je toch dubbel controleren of een veld unique is?

Eerst controleren of autonummer (interger veld),
Daarna moet je nog gaan controleren of de filenaam unique is. Aangezien deze nog steeds uniek moet zijn!
Dat het ken betekend nog niet dat het goed is..
Eens.
zie punten: [rml]cameodski in "[ MySQL] Primary key zetten lukt niet"[/rml]
Het gecombineerde veld is van toepassing bij koppel tabellen. Hierin is juist de combinatie van 2 referenties uniek.
Nix op tegen... :)

:Y)

Programmer - an organism that turns coffee into software.


Verwijderd

LuCarD schreef op 23 september 2002 @ 14:15:
[...]


Huh?
Als je een autonummer veld zou gaan gebruiken moet je toch dubbel controleren of een veld unique is?

Eerst controleren of autonummer (interger veld),
Daarna moet je nog gaan controleren of de filenaam unique is. Aangezien deze nog steeds uniek moet zijn!


[...]


Eens.
zie punten: [rml]cameodski in "[ MySQL] Primary key zetten lukt niet"[/rml]


[...]


Nix op tegen... :)

:Y)
auto_increment veld moet altijd uniek zijn
en je kan een unique key leggen over kolom filename en dan kan die ook niet anders zijn dan uniek.

hoef je niks te checken alleen een error af te vangen ;)
Pagina: 1