當前位置:首頁 » 服務存儲 » 查詢存儲過程mysql
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

查詢存儲過程mysql

發布時間: 2023-05-28 13:09:09

㈠ mysql 如何查看某個表在哪些存儲過程中用那個到了

SELECT * FROM mysql.proc

WHERE type = 'PROCEDURE'

AND specific_name = 'P_UserBetDayDetail'

AND Body LIKE '%Report_UserBetDayDetail%';

  • mysql.proc:表示查詢的目標表;

  • type = 'PROCEDURE':表示查詢的是存儲過程;

  • specific_name = 'P_UserBetDayDetail' :表示查詢的具體存儲過程名稱;

  • Body LIKE '%Report_UserBetDayDetail%':表示存儲過程內容中包含的表。

㈡ mysql 怎麼查詢存儲過程中用到哪些表

假設A表有3個欄位,ID, DATA1,DATA2
簡單的話可以不使用存儲過程,比如:
select * form A where ID in (select ID from A where DATA1 between 0 and 100)

如果你的應用比較復雜,在嵌套中還有復雜的運算,存儲過程可以如下例子:
CREATE PROCEDURE test(in_start int,in_end int)
BEGIN
DECLARE ids TEXT;
select GROUP_CONCAT(ID) into ids from A where DATA1 between in_start and in_end;
select * from A where FIND_IN_SET(ID,ids) > 0;
END
註: in_start, in_end是DATA1的篩選范圍。 後面一個select直接返回一個表

直接用SQL和使用存儲過程各有利弊,存儲過程在你使用大量查詢及SQL運算的時候效率很高,而且存儲過程一旦寫入資料庫會被自動編譯運行速度比較快,而SQL是每次執行都需要被編譯一次的。但是存儲過程的調試比較麻煩,不像你使用編程語言和SQL的時候可以單步調試。而且如果沒有熟練掌握存儲過程的效率優化情況下,使用存儲過程可能比使用SQL更慢。

㈢ 存儲過程怎麼在mysql查詢里執行

方法一:(直接查詢,比較實用,查看當前自定義的存儲過程)
select `specific_name` from MySQL.proc where `db` = 'your_db_name' and `type` = 'procere'
方法二:(查看資料庫里所有存儲過程+內容)
show procere status;
方法三:(查看當前資料庫里存儲過程列表)
select specific_name from mysql.proc ;
方法四:(查看某一個存儲過程的具體內容)
select body from mysql.proc where specific_name = 'your_proc_name';
查看存儲過程或函數的創建代碼 :
show create procere your_proc_name;
show create function your_func_name;

㈣ MySQL存儲過程查詢和刪除的問題

創建資料庫: create database database-name;
刪除資料庫: drop database database-name
查看所有資料庫: show databases
進入資料庫: use database-name
創建表table:
create table table-name(
id int,
name varchar(number)
money float(10,2)
)charset utf8,
刪除表table: drop table table-name
查看錶結構: desc table-name
查看所有表: show tables
重命名表table: rename table table-name to table-other-name
中文編碼設置{
show variables like 'character%'
set names gbk *必須gbk*
alter table table-name charset gbk
alter tabler table-name modify [column] dataName datatype charset gsk
}
改變表結構(列){
追加: alter table table-name add column dataName datatype
修改數據類型: alter table table-name modify column dataName datatype-other
修改列名: alter table table-name change column dataName dataName-other datatype
刪除列: alter table table-name drop column dataName
}

資料庫的基本操作{
添加: insert into table-name(dataName,dataName-other,..[添加的數據及數據 順序]) values(data(符合datatype) , ,)charset utf8
刪除: delete from table-name[where definition 刪除條件滿足的記錄|或刪除所有 記錄]

㈤ mysql存儲過程實現數據查詢與插入

INSERT into total_score_tmpD(
DepartmentNameEnd, StaffId,
StaffName,
CountPerHour,
SkillScoreDisCount ,
DealCount ,
ValueCount,
ValueCountDisCount
)
SELECT DepartmentName, StaffId,
StaffName,
3600/(Select DealAvgSeconds from deal_name_type where DealId='121300')*AVG(DealAvgSeconds/WaitSeconds) ,
Round(3600/(Select DealAvgSeconds from deal_name_type where DealId='121300')*avg(DealAvgSeconds/WaitSeconds)/(select Max(SunValue) From total_score_tmp33)*(select CAST(OptionValue as decimal) from sys_info WHERE OptionName='工作技能權重'),2),
count(StaffId),
Sum(DealValue),
Round(Sum(DealValue)/(select Max(SunValue) From total_score_tmp44)*(select CAST(OptionValue as decimal) from sys_info WHERE OptionName='工作效益權重'),2)
From deal_record
where DepartmentName like concat(DepartmentName2,'%') and DealDateTime BETWEEN STARTDealDateTime and endDealDateTime
group by StaffId;

insert into total_score_tmpc(DepartmentName , StaffId,
StaffName,
ClientNum ,
EvaluateScore ,
EvaluateScoreDisCount)
SELECT DepartmentName, StaffId,
StaffName,
count(StaffId),
Sum(EvaluatePrice),
Round((Sum(EvaluatePrice)/(select Max(SunValue) From total_score_tmp22))*(select CAST(OptionValue as decimal) from sys_info WHERE OptionName='服務評價權重'),2)
From evaluate_record
where DepartmentName like concat(DepartmentName2,'%') and EvaluateDateTime BETWEEN STARTDealDateTime and endDealDateTime
group by StaffId;

㈥ MySQL 存儲過程,獲取使用游標查詢的結果集

MySQL 存儲過程中,使用游標查詢,返回的是結果集時,如何查看調用存儲過程輸出結果呢?
解決方案:存儲過程不返回數據,但它能創建和填充另一個表。所以在存儲過程運行中創建臨時表。該臨時表將保存存儲過程中生成的結果集,在遍歷游標時,用insert保存每條數據到臨時表中。後續調用時可以用select語句查詢臨時表中的存儲過程運行結果。

以下有 三種方式 使用游標創建一個存儲過程,統計某一部門下的員工信息

方法一:Loop循環

調用存儲過程:

方法二:While 循環

調用存儲過程:

方法三:REPEAT 循環

調用存儲過程:

上述三種實現方法在測試過程中遇到下述問題。
調用存儲過程查詢臨時表輸出結果時,會發現多循環了一次,像這樣:

解決方法:
在遍歷游標查詢結果時告扒,先判斷游標的結束標志襪謹昌(done) 是否是為晌前1,如果不是1,則向臨時表中插入數據。

㈦ MySQL存儲過程會直接查詢主庫

主庫和從庫都直接可以查詢。
MySQL存儲過程-循環遍歷查詢到的結果集:根據MySQL的語法創建存儲過程,要注意的是如果循環遍歷查詢到的結果集,取出結果集中的數據做操作。

㈧ 怎麼在mysql中查詢已建立的存儲過程

1、首先先創建一個存儲過程,代碼如圖,存儲過程主要的功能是為表JingYan插入新的數據。