Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [MySQL 5] Stored procedure

    Buongiorno a tutti
    Ho creato una stored procedure che mi dovrebbe restituire 1 se l'utente che passo come parametro esiste nel database e 0 se questo non esiste. Ho usato una procedura e non una funzione perchè poi dovrò aggiungere altri compiti che qui non elenco ma che per ora funzionano...
    La mia procedura è la seguente:

    codice:
    CREATE PROCEDURE `existUser`(user_name VARCHAR(30))
    BEGIN
    
         DECLARE user_found VARCHAR(30);
         DECLARE result TINYINT(1);
    
         SELECT * INTO user_found
         FROM USER
         WHERE username=user_name;
    
         IF user_found IS NULL THEN
              SET result=FALSE;
         ELSE
              SET result=TRUE;
         END IF;
    
         SELECT result;
    
    END
    Ora... l'interprete dei comandi di MySQL 5 la prende correttamente, non rileva errori e me la salva nella base di dati, ma quando la chiamo mi viene restituito l'errore 1222 seguito dal 1105, rispettivamente:
    - 1222: The used SELECT statements have a different number of columns
    - 1105: Unknown error

    Dove sta il problema? Come posso risolverlo?
    Windows 7 x64 + Ubuntu Linux 10.10 (Default)
    In principio era il C...
    C/C++ & C# & JavaSE/EE Developer

  2. #2
    Utente di HTML.it L'avatar di geko
    Registrato dal
    Dec 2004
    Messaggi
    104
    codice:
    CREATE PROCEDURE `existUser`(user_name VARCHAR(30))
    BEGIN
    
         DECLARE result TINYINT(1);
    
         SELECT COUNT(idUser) INTO result
         FROM USER
         WHERE username=user_name;
    
         SELECT result;
    
    END
    dovrebbe funzionare e mi sembra molto più semplice...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.