7.30 Mots reservés par MySQL

Un problème commun est la création d'une table avec des noms de colonne qui sont aussi des nom de type de données, ou de fonction natives MySQL. Ceci est parfaitement possible (par exemple, ABS peut être un nom de colonne), mais aucun espace n'est autorisé entre le nom d'une fonction est la parenthèse ouvrante lorsque ces noms sont utilisé comme des fonctions .

Les mots suivants sont explicitement reservés par MySQL. La plus part sont interdits pas ANSI SQL92 comme nom de colonne ou nom de table (par exemple, group). Quelques uns sont reservés par MySQL qui en a besoin pour utiliser un analyseur syntaxique yacc

Les noms suivants (issus de la table ci-dessus) sont interdits pas ANSI SQL, mais acceptés apr MySQL comme nom de table/colonne. Ceci, car ces noms sont très courants, et de nombreuses personnes les utilisent déjà :

action add all alter
after and as asc
auto_increment between bigint bit
binary blob bool both
by cascade char character
change check column columns
constraint create cross current_date
current_time current_timestamp data database
databases date datetime day
day_hour day_minute day_second dayofmonth
dayofweek dayofyear dec decimal
default delete desc describe
distinct distinctrow double drop
escaped enclosed enum explain
exists fields first float
float4 float8 foreign from
for full function grant
group having hour hour_minute
hour_second ignore in index
infile insert int integer
interval int1 int2 int3
int4 int8 into if
is join key keys
last_insert_id leading left like
lines limit load lock
long longblob longtext low_priority
match mediumblob mediumtext mediumint
middleint minute minute_second month
monthname natural numeric no
not null on option
optionally or order outer
outfile partial password precision
primary procedure processlist privileges
quarter read real references
rename regexp reverse repeat
replace restrict returns rlike
second select set show
smallint soname sql_big_tables sql_big_selects
sql_select_limit sql_low_priority_updates sql_log_off sql_log_update
straight_join starting status string
table tables terminated text
time timestamp tinyblob tinytext
tinyint trailing to use
using unique unlock unsigned
update usage values varchar
variables varying varbinary with
write where year year_month
zerofill

Les valeurs suivantes issues de la table ci dessus) sont interdites par ANSI SQL, mais autorisées par MySQL comme nom de table ou de colonne. Ceci, car ce sont des noms naturels, et de nombreuses personnes les utilisent déjà.

  • ACTION
  • BIT
  • DATE
  • ENUM
  • NO
  • TEXT
  • TIME
  • TIMESTAMP