前言
文章內容均已16版本爲說明。
創建項目
這裏File下面有2個菜單:new model與new project。
New project的作用類似於文件夾,負責把有關聯關係的文件集中歸類存放。
New model的作用類似於普通的一個文件,該文件可以單獨存放也可以歸類存放,看個人使用吧。
創建模型
創建方式有2種,一種是通過左邊的workspace來創建:
還有一種方式就是通過File菜單來創建:
Physical Data Model
PDM(物理數據模型),通俗來講就是在PowerDesigner中以圖形化的方式來展示、設計數據庫。既然來展示、設計數據庫那PDM就要涉及到數據庫的基本概念,包括:
表、列、視圖、主鍵、侯選建、外鍵、存儲過程、觸發器、索引、完整性檢查約束。
選中PDM文件,然後鼠標右擊選擇new,在彈出的列表中可以看到數據庫的基本概念,根據個人需求進行創建。
導入SQL腳本從而生成PDM
1.點擊左上角:File->Reverse Engineer->Database
reverse:形容詞是相反/動詞是逆轉、顛倒/名詞是背面。
engineer:名詞是工程師、技師/動詞是策劃、製造、策動。
2.在彈出框中:Model name填寫要生成的PDM名稱,DBMS則填寫數據庫類型,也就是導出SQL文件時的原始數據庫類型,點擊“確定”按鈕,打開下一個窗口。
3.由於我們是通過SQL腳本來逆向生成PDM,因此我們選擇的是“Using script files”,然後點擊下面的添加文件小圖標(帶有黃色加號的圖標),如圖所示:
4.在選擇文件對話框中,找到要導入的SQL腳本,點擊“打開”,這時會將該SQL文件添加到列表中,最後點擊“確定”按鈕,即可在左側“workspace”窗口中看到對應的PMD。
設置主鍵自增(基於MySQL)
1.首先把identity顯示出來。雙擊表,打開“Table Properties”,點擊“columns”,點擊圖標“Customize Columns and Filter”打開對話窗口
2.在打開的窗口中,選中“identity”,點擊“確定”按鈕。
3.然後在“columns”中,能看到“identity”列,然後選中該列
4.然後點擊“Physical Options”,選中“auto_increment=(%d)”,把該參數移動到右側,然後在右側下部設置起始值
5.最後點擊“preview”來預覽效果。
導出SQL文件
- 選中要導出SQL文件的物理模型。
- 點擊Database->Generate Database。(generate動詞是產生、生成;形容詞是發生的)
按照下面提示框進行填寫:
這裏如果勾選Check mode,很容易報下面錯誤:
3. 點擊應用、確定按鈕後,打開所生成的SQL文件
中文亂碼
還是同樣的步驟,然後在彈出框中選擇format選項卡
Incorrect table definition
create table XXXX(
ID int not null auto_increment comment '序號'
)auto_increment = 1;
alter table XXXX comment '測試表';
alter table XXXX add primary key (ID);
這是我導出的SQL文件的內容,其中的ID是主鍵、自增,但我在Navicat中執行的時候報錯,錯誤信息如下:
Incorrect table definition;there can be only one auto column and it must be defined as a key.
字面意思是自增列必須是主鍵,問題是我把主鍵的定義挪到了create table的外面,所以報錯了,解決方法如下:
Invalid default value for ‘列名字’
在create table XXXX中有一列是這樣定義的:
createtime timestamp default null comment ‘創建日期’,
updatetime timestamp default null comment ‘更新日期’
然後客戶端工具Navicat報錯:
Invalid default value for ‘createtime’
Invalid default value for ‘updatetime’
解決方案:問了問其他同事,他們在實施的時候也是遇到這個問題,就把timestamp的默認值設置爲current_timestamp。
第一步:雙擊table,在打開的窗口中點擊columns。找到要設置默認值的timestamp列,點擊屬性,如圖:
第二步:點擊standard checks,在這個選項卡里設置default值。
Cannot add foreign key constraint
使用Navicat時系統報錯:cannot add foreign key constraint,分析原因在於create table語句中把主鍵約束、外鍵約束一起定義了,這就導致瞭如果create table的時候必須把其他表先創建完畢才行,截圖如下:
解決方法:主鍵約束放在create table裏面,而外鍵約束放在SQL文件的末尾,即尾部。
- 選中物理模型,點擊Database->generate Database
- 在options中,在左側列表中選中foreign key,然後在右側框中選中Outside,點擊確定即可。然後打開生成的SQL文件的最後,即可發現所有的外鍵約束全部在SQL文件尾部統一創建。
連接MySQL數據庫
- Database->Configure Data Connections
2.點擊Connection Profiles選項卡,點擊新增按鈕
3.點擊:test connection測試連接性。
4.然後在目錄下能看到.dcp文件