Heim  >  Artikel  >  Datenbank  >  Was ist der wichtigste Unterschied zwischen MySQL-Funktionen und -Prozeduren?

Was ist der wichtigste Unterschied zwischen MySQL-Funktionen und -Prozeduren?

WBOY
WBOYnach vorne
2023-09-17 22:49:021204Durchsuche

MySQL 函数和过程之间最显着的区别是什么?

Der wichtigste Unterschied zwischen Prozeduren und Funktionen besteht darin, dass sie unterschiedlich und für unterschiedliche Zwecke aufgerufen werden. Ansonsten gibt es hier die Unterschiede zwischen Prozeduren und Funktionen:

  • Prozesse geben keinen Wert zurück. Stattdessen wird es mithilfe einer CALL-Anweisung aufgerufen, um einen Vorgang auszuführen, beispielsweise das Ändern einer Tabelle oder das Verarbeiten abgerufener Datensätze.

    Funktionen hingegen werden innerhalb eines Ausdrucks aufgerufen und geben einen einzelnen Wert direkt an den Aufrufer zurück, der im Ausdruck verwendet wird. Das heißt, Funktionen können in Ausdrücken genauso verwendet werden wie Konstanten, integrierte Funktionen oder Verweise auf Tabellenspalten.

  • Wir können keine Funktionen aufrufen mit: CALL-Anweisung. Wir können keine Prozeduren innerhalb von Ausdrücken aufrufen.

  • Die Syntax für die Routineerstellung unterscheidet sich etwas von Prozeduren und Funktionen, wie folgt:

CREATE
   [DEFINER = { user | CURRENT_USER }]
   PROCEDURE sp_name ([proc_parameter[,...]])
   [characteristic ...] routine_body

CREATE
   [DEFINER = { user | CURRENT_USER }]
   FUNCTION sp_name ([func_parameter[,...]])
   RETURNS type
   [characteristic ...] routine_body

proc_parameter:
   [ IN | OUT | INOUT ] param_name type

func_parameter:
   param_name type

type:
   Any valid MySQL data type

characteristic:
   COMMENT 'string'
   | LANGUAGE SQL
   | [NOT] DETERMINISTIC
   | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
   | SQL SECURITY { DEFINER | INVOKER }

routine_body:
   Valid SQL routine statement
  • Prozedurparameter können als nur Eingabe, nur Ausgabe oder sowohl für Eingabe als auch Ausgabe definiert werden. Dies bedeutet, dass die Prozedur mithilfe von Ausgabeparametern Werte an den Aufrufer zurückgeben kann. Auf diese Werte kann in Anweisungen zugegriffen werden, die der CALL-Anweisung folgen.

    Andererseits haben Funktionen nur Eingabeparameter. Obwohl sowohl Prozeduren als auch Funktionen Parameter haben können, unterscheidet sich die Syntax der Parameterdeklaration für Prozeduren von der für Funktionen.

  • Die Funktion gibt einen Wert zurück, daher muss in der Funktionsdefinition eine RETURNS-Klausel vorhanden sein, die den Datentyp des Rückgabewerts angibt. Darüber hinaus muss es mindestens eine RETURN-Anweisung im Funktionskörper geben, um einen Wert an den Aufrufer zurückzugeben.

    Andererseits erscheinen RETURNS und RETURN nicht in der Prozedurdefinition.

    li>

Das obige ist der detaillierte Inhalt vonWas ist der wichtigste Unterschied zwischen MySQL-Funktionen und -Prozeduren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen