2010-04-21 24 views
61

Nel contesto di database MySQL, qual è la differenza tra questi 3 termini:differenze tra procedura e funzione e routine?

  • stored procedure;
  • stored procedure;
  • funzione memorizzata.

P.S. Le funzioni incorporate come quelle di data ora, weekday() sono considerate come cosa?

+2

risposta correlata: [MySQL stored procedure vs function] (http://stackoverflow.com/questions/3744209/mysql-stored-procedure-vs-function-which-would-i-use-when/13510102#13510102) , Ho trovato il collegamento mentre stavo migliorando la mia risposta, quindi collegato :) –

risposta

68

Google è tuo amico. La prima partita per la "procedura di routine la funzione mysql" è questo: http://dev.mysql.com/doc/refman/5.0/en/stored-routines-syntax.html

un breve riassunto:

Una routine memorizzata o è una procedura o una funzione.

Una procedura viene richiamata utilizzando un'istruzione CALL e può solo passare i valori utilizzando le variabili di output.

Una funzione può essere richiamata all'interno di un'istruzione come qualsiasi altra funzione e può restituire un valore scalare.

+13

Mentre sono d'accordo con il sentimento RTFM. Questa risposta è ora utilizzata da Google per mostrare un risultato in linea. – Realistic

27

Differenza tra funzione MySQL e procedure mysql

MYSQL Funzione

Deve restituire valore. IN, OUT e INOUT non possono essere utilizzati in funzione. Ma il tipo di dati di ritorno deve essere dichiarato quando si crea una funzione. la funzione può essere chiamata da un'istruzione SQL. Funzione restituisce un valore.

Procedura MYSQL

Valori di ritorno non è obbligatorio, ma può essere utilizzato il parametro OUT per rendimenti procedura. È possibile utilizzare IN | OUT | Parametri INOUT. La procedura non può essere richiamata dall'istruzione SQL. la procedura restituisce più valori utilizzando i parametri OUT o INOUT.

29

Qui ho cercato di riassumere la differenza tra funzione e procedure.

  1. A FUNCTION restituisce sempre un valore utilizzando l'istruzione return. PROCEDURE può restituire uno o più valori tramite parametri o non può restituirli affatto.
  2. Le funzioni vengono normalmente utilizzate per i calcoli in cui normalmente le procedure vengono utilizzate per l'esecuzione della business logic.
  3. Una funzione restituisce solo il valore 1. La procedura può restituire più valori (max 1024).
  4. La stored procedure restituisce sempre un valore intero pari a zero per impostazione predefinita. Mentre i tipi restituiti dalla funzione possono essere valori scalari o di tabella o tabella.
  5. Le stored procedure dispongono di un piano di esecuzione precompilato, in cui le funzioni non lo sono.
  6. Una funzione può essere richiamata direttamente dall'istruzione SQL come select func_name da dual mentre le procedure non possono.
  7. La stored procedure ha la sicurezza e riduce il traffico di rete e inoltre possiamo chiamare stored procedure in qualsiasi no. delle applicazioni alla volta.
  8. Una funzione può essere utilizzata nelle query SQL mentre non è possibile utilizzare una procedura nelle query SQL. Ciò causa una notevole differenza di funzioni e procedure b/n.
+0

Il tuo quarto punto non è corretto per favore correggi gli ans –

0

La funzione deve restituire un valore ma in Stored procedure è facoltativo (la procedura può restituire zero o n valori). Le funzioni possono avere solo parametri di input, mentre Procedure possono avere parametri di input/output. Le funzioni possono essere richiamate da Procedura mentre le Procedure non possono essere richiamate dalla funzione.