FOK!forum / Digital Corner / Reserved words mysql negeren
sabandinsdag 5 mei 2009 @ 21:41
1. Ik weet niet of mijn 'titel benameing' wel klopt.
2. Ik schaam me best wel van mijn probleem.

Ik heb dus een mysql database, met een aantal tabellen, bijna in al mijn tabellen komt de kolom 'date' voor. Echter blijkt deze reserved te zijn want ik kan niet zomaar data invoeren. Tot nu toe werkte het altijd goed, waarschijnlijk na een update ofzo niet meer.
Ik heb geen zin om mijn kolommen te hernoemen en ook nog eens mijn script aan te passen.

Hoe los ik dit op?
JAGdinsdag 5 mei 2009 @ 21:48
Door backticks (`, bij de tilde ~) om je reserved keyword te zetten:

select `date` from `table`;
sabandinsdag 5 mei 2009 @ 21:56
quote:
Op dinsdag 5 mei 2009 21:48 schreef JAG het volgende:
Door backticks (`, bij de tilde ~) om je reserved keyword te zetten:

select `date` from `table`;
INSERT INTO `table` ( `date` ) VALUES ( '20090505' )

Dit hoort dus te werken volgens jou? Tot nu toe werkte het altijd, plotseling niet meer.
GlowMousedinsdag 5 mei 2009 @ 22:15
http://dev.mysql.com/doc/refman/5.1/en/reserved-words.html
quote:
MySQL allows some keywords to be used as unquoted identifiers because many people previously used them. Examples are those in the following list:
* ACTION
* BIT
* DATE
* ENUM
* NO
* TEXT
* TIME
* TIMESTAMP
date zou geen probleem moeten geven, onafhankelijk van je settings.
rekenwonderdinsdag 5 mei 2009 @ 22:55
quote:
Op dinsdag 5 mei 2009 21:56 schreef saban het volgende:

[..]

INSERT INTO `table` ( `date` ) VALUES ( '20090505' )

Dit hoort dus te werken volgens jou? Tot nu toe werkte het altijd, plotseling niet meer.
Wegens? Welke foutmelding krijg je?
sabanwoensdag 6 mei 2009 @ 22:15
quote:
Op dinsdag 5 mei 2009 22:55 schreef rekenwonder het volgende:

[..]

Wegens? Welke foutmelding krijg je?
Geen foutmelding, hij maakt er een één of ander timestamp van.