亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

參數傳入任意值都會被刪除?

3為什么3,輸入任意的id都會被刪除嗎?

DELIMITER //

CREATE PROCEDURE removeUserById(IN id INT UNSIGNED)

BEGIN

DELETE FROM user WHERE id = id;

END

//

DELIMITER ;

CALL removeUserById(3);

正在回答

1 回答

您好!很高興回答你的問題。

現在根據你寫的代碼可以看出,不止你輸入3,刪除了所有記錄,就是你輸入任何正數(在范圍內的),都會刪除所有記錄。

因為DELETE FROM user WHERE????id=id;其中前面的id和后面的id是兩個字段,雖然我們理解是前者是記錄表中的id值,后者是存儲過程輸入的參數值,但是系統無法識別,現在相當于WHERE給的條件是所有的id均會被刪除。

正確的寫法:DELETE FROM user WHERE xxx.id=id;其中xxx指的是記錄表的名字。

1 回復 有任何疑惑可以回復我~
#1

Adam靜棲 提問者

非常感謝!
2017-01-05 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
與MySQL的零距離接觸
  • 參與學習       396743    人
  • 解答問題       3497    個

本課程涵蓋全部MySQL數據庫的基礎,學習MySQL數據庫的基礎知識

進入課程

參數傳入任意值都會被刪除?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號