Pour les débutants, une option de démarrage pratique est
--safe-updates
(ou
--i-am-a-dummy
, qui a le même effet). Cette
option a été introduite en MySQL 3.23.11. Elle est pratique
si vous avec émis des commandes DELETE FROM
tbl_name
mais que vous avez oublié la clause
WHERE
. Normalement, une telle commande va
effacer toutes les lignes de la table. Avec
--safe-updates
, vous pouvez effacer
uniquement les lignes dont vous spécifiez les valeurs de clé
pour les identifier. Cela évite les accidents.
Lorsque vous utilisez l'option
--safe-updates
, mysql
émet l'alerte suivante lorsqu'il se connecte à MySQL :
SET SQL_SAFE_UPDATES=1,SQL_SELECT_LIMIT=1000, SQL_MAX_JOIN_SIZE=1000000;
See Section 13.5.2.8, « Syntaxe de SET
».
La commande SET
a l'effet suivant :
Vous n'êtes pas autorisés à exécuter de commandes
UPDATE
et DELETE
à
moins que vous ne spécifiez une contrainte de clé dans
la clause WHERE
où que vous
fournissiez une clause LIMIT
, ou les
deux. Par exemple :
UPDATE tbl_name SET not_key_column=# WHERE key_column=#; UPDATE tbl_name SET not_key_column=# LIMIT 1;
Tous les résultats importants de
SELECT
sont automatiquement limités à
1000, à moins que la commande n'inclut la clause
LIMIT
.
Les commandes SELECT
multi-tables qui
devront étudier plus d'un million de lignes sont
annulées.
Pour spécifier des limites autres que 1000 et 1000000, vous
pouvez remplacer les maxima avec
--select_limit
et
--max_join_size
:
shell> mysql --safe-updates --select_limit=500 --max_join_size=10000
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.