Maison  >  Article  >  base de données  >  Quelle est la commande pour modifier les procédures stockées dans MySQL ?

Quelle est la commande pour modifier les procédures stockées dans MySQL ?

青灯夜游
青灯夜游original
2020-10-12 09:58:283738parcourir

La commande pour modifier la procédure stockée dans mysql est "ALTER PROCEDURE", le format de syntaxe est "ALTER PROCEDURE nom de la procédure stockée [caractéristique...]", les valeurs possibles de la caractéristique sont CONTAINS SQL , PAS de SQL, INVOKER, DEFINER et ainsi de suite.

Quelle est la commande pour modifier les procédures stockées dans MySQL ?

(Tutoriel recommandé : Tutoriel vidéo MySQL)

Dans le processus de développement réel, lorsque les exigences métier sont modifiées, s'est produit, donc la modification des procédures stockées dans MySQL est inévitable.

Dans MySQL, les procédures stockées sont modifiées via l'instruction ALTER PROCEDURE. Cette section expliquera en détail comment modifier la procédure stockée.

Le format de syntaxe pour modifier les procédures stockées dans MySQL est le suivant :

ALTER PROCEDURE 存储过程名 [ 特征 ... ]

La caractéristique précise les caractéristiques de la procédure stockée. Les valeurs possibles sont :

  • CONTAINS SQL signifie que le sous-programme contient des instructions SQL, mais ne contient pas d'instructions pour lire ou écrire des données.

  • NO SQL signifie que le sous-programme ne contient pas d'instructions SQL.

  • READS SQL DATA indique que le sous-programme contient des instructions pour lire les données.

  • MODIFIES SQL DATA indique que le sous-programme contient des instructions pour écrire des données.

  • SQL SECURITY { DEFINER | INVOKER } spécifie qui a l'autorisation d'exécuter.

  • DEFINER signifie que seul le définisseur peut l'exécuter.

  • INVOKER signifie que l'appelant peut s'exécuter.

  • COMMENT 'string' représente les informations du commentaire.

Exemple 1

Ce qui suit modifie la définition de la procédure stockée showstuscore, modifie les autorisations de lecture et d'écriture en MODIFIE LES DONNÉES SQL et indique que l'appelant peut exécuter, le code est le suivant :

mysql> ALTER PROCEDURE showstuscore MODIFIES SQL DATA SQL SECURITY INVOKER;
Query OK, 0 rows affected (0.01 sec)

Exécutez le code et affichez les informations modifiées. Les résultats d'exécution sont les suivants :

mysql> SHOW CREATE PROCEDURE showstuscore \G
*************************** 1. row ***************************
           Procedure: showstuscore
            sql_mode: STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
    Create Procedure: CREATE DEFINER=`root`@`localhost` PROCEDURE `showstuscore`()
    MODIFIES SQL DATA
    SQL SECURITY INVOKER
BEGIN
SELECT id,name,score FROM studentinfo;
END
character_set_client: gbk
collation_connection: gbk_chinese_ci
  Database Collation: latin1_swedish_ci
1 row in set (0.00 sec)

Le résultat montre que la procédure stockée a été. modifié avec succès. À partir des résultats en cours d'exécution, nous pouvons voir que l'autorisation d'accès aux données a été modifiée en MODIFIES SQL DATA et que le type de sécurité a également été modifié en INVOKE.

Astuce : L'instruction ALTER PROCEDURE est utilisée pour modifier certaines caractéristiques d'une procédure stockée. Si vous souhaitez modifier le contenu d'une procédure stockée, vous pouvez d'abord supprimer la procédure stockée d'origine, puis créer une nouvelle procédure stockée portant le même nom ; si vous souhaitez modifier le nom de la procédure stockée, vous pouvez supprimer l'original ; procédez d'abord à la procédure stockée, puis créez une nouvelle procédure stockée portant un nom différent.

Recommandations associées :

formation php

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn