2013-01-31 44 views
5

這是我的程序代碼。我試圖通過將舊用戶名放在where子句中來更新用戶名,但它不起作用。mysql程序中的更新語句不起作用

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 ; 

請幫我解決這個問題。

+0

沒有找到錯誤,不更新值。 – naveed

+0

Mahmoud Gamal是不是它的工作.. – naveed

+0

而不是評論回答我我會接受它..謝謝很多 – naveed

回答

2

嘗試從行號「6」中刪除「用戶名」並使用其他參數名稱。它可能與您的表用戶名字段相沖突。 例如:UPDATE table_name SET Username=OTHER_PARAMETER_NAME WHERE Username=uname;

0

如果tid是表名,你不應該在更新查詢中使用tid而不是table_name嗎?

+0

「tid」是另一個列名稱它不是table_name。 – naveed

0

嗨,我面臨同樣的問題給出一個ALISE表名並嘗試運行更新查詢

嘗試此查詢

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

我已經使用的查詢是:

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