navicat存儲過程導出
㈠ navicat怎麼導出存儲過程
你打開"new query",然後直接在新的窗口裡編寫就可以了,給你個示例:
create procere p_test
(
in i_num int,
in i_name varchar(50),
out o_result varchar(100)
)
begin
select i_num as '輸入參數1', i_name as '輸入參數2';
set o_result = '輸入參數結果為:';
end;
㈡ navicat for mysql 函數f和p的區別是什麼
函數就是必須有返回值的,定義的時候強制指定,p就是存儲過程,可以輸出參數,也可以不輸出參數。這就是二者的區別
㈢ Navicat與MYSQL自帶的工具相比,有哪些優勢特點
1、MySQL GUI Tools包括:
MySQL Query Browser
MySQL Administrator
MySQL Migration Toolkit
MySQL System Tray Monitor
2、MySQL Query Browser主要功能介紹:
(1)查看mysql syntax語句句法,函數,參數
(2)標簽和歷史記錄
(3)保存查詢,打開查詢文件 *.qbquery
(4) 創建資料庫(schema),表,視圖,存儲過程/函數,刪除,編輯表,視圖,拷貝表結構。
(5)創建新的連接,切換連接。
MySQL Administrator主要功能介紹:
(1)啟動/停止mysql服務
(2)用戶連接次數,線程
(3)健康狀況查看:
連接健康實時曲線圖查看(連接使用率,流量,sql查詢數)
內存健康查看(Query Cache Hitrate,Key Efficiency)
狀態變數查看(普通,性能,網路,執行的命令,混合,新變數)
系統變數查看(普通,連接,SQL,內存,表類型,新變數)
(4)啟動變數編輯
(5)伺服器,伺服器實例,客戶端信息查看
(6)備份與恢復整個資料庫或1至多個表,定時備份.
(7)目錄(catalog):
選定資料庫創建,編輯表(索引,外鍵,列,存儲引擎,字元集,密碼,自動增長,最大行,最小行等),維護表(優化,檢查,修理),查看選定資料庫的
所有索引,創建,刪除編輯選定資料庫的視圖,存儲過程。
(8)伺服器日誌包括:錯誤日誌,普通查詢日誌,緩慢查詢日誌
Migration Toolkit:
可以從MS SQL,Oracle等資料庫移植復制資料庫到Mysql
Mysql System Tray Monitor:
監控CPU使用,管理mysql實例,啟動變數,Mysql服務,伺服器日誌。設置掃描間隔(1,2,5,10,30秒,1分鍾)
2、Mysql workbench是另一種Mysql工具:
(1)添加EER 圖表(Extended Entity-Relationship的縮寫)
(2)使用默認Schema,創建新表,新的視圖等對象
(3)可以導入SQL腳本
3、Navicat與MySQL GUI Tools比較有以下優勢:
1.最新的MySQL版本支持,支持Mysql資料庫新對象如事件,MySQL GUI Tools不能支持事件對象.
2.支持SSH連接到MySQL伺服器,MySQL GUI Tools沒有此功能設置
3.支持SSL安全連接,MySQL GUI Tools沒有此功能
4.備份連接信息,MySQL GUI Tools只能查看連接信息,不能備份.
5.過濾記錄.智能化輸入過濾條件,MySQL GUI Tools沒有此功能.
6.導入導出支持17種格式(slk,dif,wk1,wq1,rtf,mdb,sav,ldif等特殊的格式)。
7.結構同步,數據同步.MySQL GUI Tools只有備份和恢復,異種資料庫類型間移植數據.
8.調度,創建Batch Job,設置任務調度. 創建一個設定的計劃批處理工作,以計劃執行一個或多個定期的,指定開始及結束的日期及時間。批處理
可以創建的對象包括查詢,報表列印,備份,數據傳送,數據同步,導入和導出。發送計劃工作的電子郵件通知,產生通知電子郵件給你指定的收件人,讓他們取
得最新計劃的資訊。通過你在計劃中回傳結果的電子郵件帳號來直接讀取。MySQL GUI Tools只有備份和定時備份.
9.報表設計,列印及定製調度.MySQL GUI Tools則沒有報表.
10.創建表/視圖的桌面快捷方式,Mysql GUI tools沒有此功能.
11.表的復制(plicate)/清空(empty)/刪除(trancate)所有數據.Mysql GUI tools只有drop表,創建
表
12.Navicat自動完成SQL代碼,NySQL GUI則不能智能化的輸入SQL命令,只能提供SQL語法查詢.
13.伺服器監控,狀態變數與系統變數不僅可以像MySQL GUI tools一樣可以查看,還可以編輯。
下面是每一種產品主要功能的說明。大部分客戶還喜歡拿Navicat與免費的管理員工具-phpMyAdmin比較。
MySQL Migration Toolkit:
這個工具包的主要功能是從相關的資料庫系統移植schema和數據到MySQL.
它僅僅支持JDBC/ODBC兼容的資料庫文件如Oracle,MS SQL,MS Access,因而移植能力十分有限。對於Navicat,不僅
支
持與JDBC/ODBC兼容的資料庫而且還有一些其它的流行的數據格式如Excel,PDF,HTML,dBase和XML.
界面:不像Navicat那麼優美直觀。
價格:免費
平台支持:Windows,Mac OS X和Linux
MySQL Administrator:
不僅僅是一個MySQL伺服器配置工具,還可以監控它的狀態和性能,啟動和停止它。管理用戶和連接和性能備份。
MySQL Administrator不能用來創建資料庫,表或一些其他的MySQL對象,不能用於查詢資料庫。而且還沒有一些Navicat的高級
功能如導入/導出,數據同步,任務調度和報表。
界面:不像Navicat那麼優美直觀。
價格:免費
平台支持:Windows,Mac OS X和Linux
MySQL Query Browser:
這個工具僅允許用戶創建,執行和優化MySQL資料庫。這個工具的主要目的是幫助用戶查詢和分析存儲在MySQL資料庫的數據。
界面:不像Navicat那麼優美直觀。
價格:免費
平台支持:Windows,Mac OS X和Linux
MySQL Workbench:
MySQL Workbench是一個MySQL資料庫ER模型工具.一般被認為是「MySQL資料庫設計工具」。用戶可以用它設計,編輯,維護和比較
資料庫。
Navicat沒有ER資料庫模型工具,但是計劃在今年第三季度支持它。
MySQL Workbench有一個社區版本和標准版本,商業用戶需支付99美元也只是用於支持Windows系統。
Navicat是一款強大的易用的工具。Navicat幾乎將以上工具的所有特點融合在了一起,在訪問數據表,瀏覽/顯示數據和其它操作上運行的更快
㈣ navicat創建存儲過程,該怎麼處理
存儲過程就是可存儲於資料庫中的一段可執行代碼塊。 create or replace procere 過程名 ( 參數列表 ) as 變數列表 begin 業務邏輯代碼塊 open ref_cursor for v_sqltext2; exception 異常處理代碼塊 end 過程名 create or replace procere
㈤ Navicat導出mysql資料庫時出錯怎麼解決
項目上 MySQL還原 SQL 備份經常會碰到一個錯誤如下,且通常出現在導入視圖、函數、存儲過程、事件等對象時,其根本原因就是因為導入時所用賬號並不具有SUPER 許可權,所以無法創建其他賬號的所屬對象。ERROR 1227 (42000) : Access denied; you need (at least one of) the SUPER privilege(s) for this operation常見場景:1. 還原 RDS 時經常出現,因為 RDS 不提供 SUPER 許可權;2. 由開發庫還原到項目現場,賬號許可權等有所不同。
處理方式:
1. 在原庫中批量修改對象所有者為導入賬號或修改SQL SECURITY為Invoker;2. 使用 mysqlmp 導出備份,然後將 SQL 文件中的對象所有者替換為導入賬號。
二、問題原因我們先來看下為啥會出現這個報錯,那就得說下 MySQL 中一個很特別的許可權控制機制,像視圖、函數、存儲過程、觸發器等這些數據對象會存在一個DEFINER和一個SQL SECURITY的屬性,如下所示:
--視圖定義CREATEALGORITHM=UNDEFINEDDEFINER=`root`@`%`SQLSECURITYDEFINERVIEWv_test
--函數定義CREATEDEFINER=`root`@`%`FUNCTION`f_test()`RETURNSvarchar(100)SQLSECURITYDEFINER
--存儲過程定義CREATEDEFINER=`root`@`%`PROCEDURE`p_test`()SQLSECURITYDEFINER
--觸發器定義CREATE DEFINER=`root`@`%` trigger t_test
--事件定義CREATE DEFINER=`root`@`%` EVENT `e_test`
DEFINER:對象定義者,在創建對象時可以手動指定用戶,不指定的話默認為當前連接用戶;
SQL SECURITY:指明以誰的許可權來執行該對象,有兩個選項,一個為DEFINER,一個為INVOKER,默認情況下系統指定為 DEFINER;DEFINER:表示按定義者的許可權來執行;INVOKER:表示按調用者的許可權來執行。
如果導入賬號具有 SUPER 許可權,即使對象的所有者賬號不存在,也可以導入成功,但是在查詢對象時,如果對象的SQL SECURITY為DEFINER,則會報賬號不存在的報錯。ERROR 1449 (HY000): The user specified as a definer ('root'@'%') does not exist
改寫好處:1. 可以避免還原時遇到 DEFINER 報錯相關問題;2. 根據輸出信息知道備份是否正常進行,防止備份中遇到元數據鎖無法獲取然後一直卡住的情況。