當前位置:首頁 » 存儲配置 » mysql修改存儲過程

mysql修改存儲過程

發布時間: 2022-10-16 03:21:40

Ⅰ MYsql如果將修改存儲過程的許可權給別的用戶

最佳答案語法是錯的。
GRANT EXECUTE ON PROCEDURE 存儲過程名稱 to 用戶名稱;
前提是執行這條語句的用戶是有這個存儲過程的許可權的。

Ⅱ mysql存儲過程及流程式控制制

存儲過程(Stored
Procere)是一組為了完成特定功能的SQL語句集功能是將常用或復雜的工作,預先用SQL語句寫好並用一個指定名稱存儲起來,
以後需要資料庫提供與已定義好的存儲過程的功能相同的服務時,只需調用
call
存儲過程名字,
即可自動完成命令。存儲過程是由流控制和SQL語句書寫的過程,這個過程經編譯和優化後存儲在資料庫伺服器中,可由應用程序通過一個調用來執行,而且允許用戶聲明變數
。同時,存儲過程可以接收和輸出參數、返回執行存儲過程的狀態值,也可以嵌套調用。

Ⅲ mysql如何修改存儲過程名

存儲過程重命名:sp_rename 'oldProc','newProc','object'

實際上只要了解了sp_rename 就行了,至於參數要根據你重命名的對象有關

Ⅳ mysql關於在存儲過程中修改表的數據

set titlebar 'TAB' with name 'anzeigen'(100).
elseif code = 'EDIT'.
set titlebar 'TAB' with name '??ndern'(101).
elseif code = 'INSR'.
set titlebar 'TAB' with name 'einfügen'(102).
elseif code = 'ANVO'.
set titlebar 'TAB' with name 'einfügen'(102).
elseif code = 'DELE'.
endif. 2)se16n 修改批量數據,在條件選擇界面時,命令行輸入『&SAP_EDIT』,然後執行,下一界面即處於可編輯狀態;3)se30 運用abap更新語句修改批量數據;4)函數 SE16N_INTERFACE 用來修改批量數據;5)SM30修改擁有維護視圖的表數據。

Ⅳ mysql怎樣修改存儲過程

show create procere myProc

Ⅵ mysql 如何修改存儲過程

ALTER PROCEDURE proc_name [characteristic ...]

characteristic:

| SQL SECURITY
| COMMENT 'string'

This statement can be used to change the characteristics of a stored procere. More than one change may be specified in an ALTER PROCEDURE statement. However, you cannot change the parameters or body of a stored procere using this statement; to make such changes, you must drop and re-create the procere using DROP PROCEDURE and CREATE PROCEDURE.
就是說只能改名字和定義不能改裡面的內容。要刪了重新建。

Ⅶ Mysql存儲過程修改,熟悉mysql的來。

DELIMITER
$$
DROP
PROCEDURE
IF
EXISTS
`test`.`Update_CompanyInfo`
$$
CREATE
PROCEDURE
`test`.`Update_CompanyInfo`(in
N_id
varchar(20),in
O_id
varchar(20),in
N_name
varchar(60),in
N_tel
varchar(20),in
N_addr
varchar(20),in
dealflag
varchar(10))
BEGIN
declare
@Tmp
int
#這里記得加『;』
if(O_id
is
not
null
or
O_id!='')
then
#
可以用<>
select
count(*)
into
@tmp
from
companyinfo
where
id=O_id;
else
select
count(*)
into
@tmp
form
companyinfo
where
id=N_id;
end
if;
if(dealflag!='delete'
and
@tmp=0)
then
insert
into
companyinfo
(id,name,tel,addr)values(N_id,N_name,N_tel,N_addr);
elseif(dealflag='delete'
and
@tmp=1)
then
delete
from
companyinfo
where
id=O_id;
elseif(dealflag!='delete'
and
@tmp=1)
then
update
companyinfo
set
name=N_name,tel=N_tel,addr=N_addr
where
id=O_id;
end
if;
END
$$
DELIMITER
;

Ⅷ mysql存儲過程怎麼調

mysql調試
存儲過程
具體方法:
在你的存儲過程中加入如下語句:
SELECT
變數1,變數2;
然後用mysql自帶的cmd程序進入mysql>
下。
call
你的存儲過程名(輸入參數1,@輸出參數);(注:這里幫助下新同學,如果你的存儲過程有輸出變數,那麼在這里只需要加
@
然後跟任意變數名即可);
即可發現你的
變數值
被列印到了cmd下

Ⅸ 在MySQL中,存儲過程創建後只允許查看不允許修改

選擇『錯』,
MYSQL不提供存儲過程的代碼修改,只能修改存儲過程的定義和特性,
修改存儲過程的代碼,需要刪除原來的代碼,創建新的同名存儲過程。

Ⅹ 五、MYSQL存儲過程和函數

• create procere用來創建 存儲過程 ,create function用來創建 函數

Delimiter命令是改變語句的結束符 ,MySQL默認的結束符為;號,由於procere和function中的;號並不代表創建的結束,所以要替換成另外的結束符以便表示創建的結束
• rontine_body子句可以包含一個簡單的SQL語句,也可以包含多個SQL語句, 通過begin…end將這多個SQL語句 包含在一起
• MySQL存儲過程和函數中也可以包含類似create和drop等DDL語句
• comment子句用來寫入對存儲過程和函數的注釋
Language子句用來表示此存儲過程和函數的創建語言
存儲過程和函數被標注為deterministic表明當輸入相同的參數是會返回相同的結果,反之如果是not deterministic則表示相同參數不會是相同結果,默認是not deterministic

相關屬性短語只有咨詢含義,並不是強制性的約束

• Drop procere/function語句用來 刪除指定名稱的存儲過程或函數

• Begin…end語句通常出現在存儲過程、函數和觸發器中,其中 可以包含一個或多個語句 ,每個語句用;號隔開

• 標簽label可以加在begin…end語句以及loop, repeat和while語句
語句中通過iterate和leave來控制流程,iterate表示返回指定標簽位置,leave表示跳出標簽

Declare語句通常用來聲明本地變數、游標、條件或者handler
Declare語句只允許出現在begin … end語句中而且必須出現在第一行
Declare的順序也有要求,通常是先聲明本地變數,再是游標,然後是條件和handler

• 本地變數可以通過declare語句進行聲明
聲明後的變數可以通過select … into var_list進行賦值,或者通過set語句賦值,或者通過定義游標並使用fetch … into var_list賦值
• 通過declare聲明變數方法:

• MySQL支持if,case,iterate,leave,loop,while,repeat語句作為存儲過程和函數中的 流程式控制制語句 ,另外return語句也是函數中的特定流程式控制制語句

• Case語句在存儲過程或函數中表明了 復雜的條件選擇語句

• IF語句在存儲過程或函數中表明了 基礎的條件選擇語句

其中在 function 裡面,只有 DETERMINISTIC, NO SQL 和 READS SQL DATA 被支持。如果我們開啟了 bin-log, 我們就必須為我們的 function 指定一個參數。
在 MySQL 中創建函數時出現這種錯誤的解決方法:
set global log_bin_trust_function_creators=TRUE;

• Iterate語句 僅出現在loop,repeat,while循環語句中,其含義表示重新開始此循環

• Leave語句表明 退出指定標簽的流程式控制制語句塊
• 通常會用在begin…end,以及loop,repeat,while的循環語句中

• Loop語句是存儲過程或函數中表達 循環執行 的一種方式

• repeat語句是存儲過程或函數中表達 循環執行 的一種方式

• while語句是存儲過程或函數中表達 循環執行 的一種方式

• Return語句用在 函數中,用來終結函數的執行並將指定值返回給調用者

• Cursor游標用來 聲明一個數據集
• 游標的聲明必須在變數和條件聲明之後,在handler聲明之前

• Cursor close語句用來 關閉之前打開的游標

• Cursor declare語句用來聲明一個游標和指定游標對應的數據集合, 通常數據集合是一個select語句

• Cursor fetch語句用來獲取游標指定數據集的 下一行數據 並將各個欄位值賦予後面的變數

• Open cursor語句用來打開一個之前已經 聲明好的游標

• Declare condition語句命名 特定的錯誤條件 ,而該特定錯誤可以在declare…handler中指定 處理方法

• 比如在MySQL中1051error code表示的是unknown table的錯誤,如果要對這
個錯誤做特殊處理,可以用三種方法:

• Declare handler語句用來聲明一個handler來處理一個或多個特殊條件,當其中的某個條件滿足時則觸發其中的statement語句執行
• Statement可以是一個簡單SQL語句,也可以是begin…end組成的多個語句

• Handler_action子句聲明當執行完statement語句之後應該怎麼辦

Condition_value的值有以下幾種:

• 當condition發生但沒有聲明handler時,則存儲過程和函數依照如下規則處理

• create trigger語句用來創建一個觸發器,觸發器的作用是當表上有對應SQL語句發生時,則觸發執行
• 觸發器創建時需要 指定對應的表名 tbl_name

Definer關鍵詞用來指定trigger的安全環境
• Trigger_time指定觸發器的執行時間,BEFORE和AFTER指定觸發器在表中的 每行數據修改前或者後 執行
• Trigger_event指定觸發該觸發器的具體 事件
• INSERT當新的一行數據插入表中時觸發,比如通過執行insert,load data,replace語句插入新數據
• UPDATE當表的一行數據被修改時觸發,比如執行update語句時
• DELETE當表的一行數據被刪除時觸發,比如執行delete,replace語句時
• 當執行insert into … on plicate key update語句時,當碰到重復行執行update時,則觸發update下的觸發器
• 從5.7.2版本開始,可以創建具有相同trigger_time和trigger_event的同一個表上的多個觸發器,默認情況下按照創建的時間依次執行,通過 指定FOLLOWS/PRECEDES改變執行順序 ,即FOLLOWS時表示新創建的觸發器後執行,PRECEDES則表示新觸發器先執行
• Trigger_body表示觸發器觸發之後要執行的一個或多個語句,在內部可以引用涉及表的欄位, OLD.col_name表示行數據被修改或刪除之前的欄位數據,NEW.col_name表示行數據被插入或修改之後的欄位數據

• Drop trigger語句用來 刪除一個觸發器

• If exists短語用來避免刪除不存在的觸發器時引發報錯
當你執行drop table時,表上的觸發器也被drop掉了

熱點內容
為什麼文件夾有鎖 發布:2025-05-14 05:53:21 瀏覽:944
安卓手機哪個處理器是最好的 發布:2025-05-14 05:40:23 瀏覽:530
java語言實現 發布:2025-05-14 05:34:43 瀏覽:234
數控系統主軸配置參數有哪些 發布:2025-05-14 05:25:55 瀏覽:819
二級緩存微服務 發布:2025-05-14 05:13:55 瀏覽:101
sqlserverwhencase 發布:2025-05-14 05:11:35 瀏覽:434
安卓odd是什麼意思 發布:2025-05-14 04:49:57 瀏覽:921
安卓哪個app能查詢航班 發布:2025-05-14 04:49:04 瀏覽:558
linux定時shell腳本 發布:2025-05-14 04:49:00 瀏覽:684
審計需要什麼配置 發布:2025-05-14 04:48:55 瀏覽:550