2013-01-31 14 views
5

Oto mój kod postępowania. Próbuję zaktualizować nazwę użytkownika, umieszczając starą nazwę użytkownika w klauzuli where.but, ale nie działa.Aktualizacja oświadczenie w procedurze mysql nie działa

DELIMITER $$ 

    DROP PROCEDURE IF EXISTS `databasename`.`UpdateUsername` $$ 

    CREATE DEFINER=`root`@`localhost` PROCEDURE `UpdateUsername` 
(IN uname VARCHAR(30),tid VARCHAR(100),username VARCHAR(30) ) 

BEGIN 



UPDATE table_name SET Username=username WHERE Username=uname; 

END $$ 
DELIMITER ; 

pomóż mi rozwiązać ten problem.

+0

nie znaleziono błędów, nie aktualizuje wartości. – naveed

+0

Mahmoud Gamal tak nie działa .. – naveed

+0

zamiast komentarza odpowiedz mi, a zaakceptuję. Dzięki. – naveed

Odpowiedz

2

Spróbuj usunąć "nazwę użytkownika" z numeru linii "6" i użyj innej nazwy parametru. Może być w konflikcie z polem Nazwa użytkownika w tabeli. Na przykład: UPDATE table_name SET Username=OTHER_PARAMETER_NAME WHERE Username=uname;

0

Jeśli tid jest nazwą tabeli, nie powinieneś używać tid zamiast table_name w zapytaniu o aktualizację?

+0

"tid" to inna nazwa kolumny, nie jest to nazwa_tabeli. – naveed

0

Witam mam do czynienia tego samego problemu dać alise do nazwy tabeli i spróbuj uruchomić kwerendę aktualizującą

spróbować tej kwerendy

UPDATE table_name tn SET tn.Username=username WHERE tn.Username=uname; 

zapytanie Użyłem jest:

update file_structure fs set fs.active_status = 'N' where fs.fileid = temp_fileid and fs.appid = temp_appid; 
Powiązane problemy