2013-01-31 27 views
5

Đây là mã thủ tục của tôi. Tôi đang cố gắng để cập nhật tên người dùng bằng cách đặt tên người dùng cũ trong where clause.but nó không hoạt động.Tuyên bố cập nhật trong quy trình mysql khi không hoạt động

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 ; 

hãy giúp tôi khắc phục sự cố này.

+0

không tìm thấy lỗi, không cập nhật giá trị. – naveed

+0

Mahmoud Gamal có không làm việc của nó .. – naveed

+0

thay vì bình luận trả lời tôi tôi sẽ chấp nhận nó .. Cảm ơn rất nhiều – naveed

Trả lời

2

Hãy thử xóa 'tên người dùng' khỏi số dòng '6' và sử dụng một số tên thông số khác. Nó có thể xung đột với trường Tên người dùng bảng của bạn. Ví dụ: UPDATE table_name SET Username=OTHER_PARAMETER_NAME WHERE Username=uname;

0

Nếu tid là tên bảng, bạn không nên sử dụng tid thay vì tên_bảng trong truy vấn cập nhật?

+0

"tid" là một tên cột của nó không phải là table_name. – naveed

0

Hi tôi đã phải đối mặt với cùng một vấn đề đưa ra một ALISE để tên bảng và thử chạy update query

thử truy vấn này

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

truy vấn tôi đã sử dụng là:

update file_structure fs set fs.active_status = 'N' where fs.fileid = temp_fileid and fs.appid = temp_appid; 
Các vấn đề liên quan