花了大概半天的時間學習了下powerdesigner的用法,等我產生sql語句時,發現在產生的sql語句根本不能在mysql中執行,當然我的dbms是設定了mysql的。
在網上搜尋一通,也沒有什麼好的解決方案。自己摸索了一下,已經搞定了。
首先說明下,我產生的sql語句不能在mysql上執行,是因為表中的主鍵包含了自增的屬性,所以產生的程式碼不能在mysql上執行,錯誤如下:
就是說自增的那個列必須是主鍵,很顯然是因為powerdsigner產生的程式碼不能被mysql正確的執行的,查看powerdesigner產生的程式碼如下:
create table scnu_homework_answer( answer_id bigint not null auto_increment tenant_id bigint not null answer_iscorrected smallint not null answer_tea_isdeleted smallint not null answer_stu_isdeleted smallint not null);alter table scnu_homework_answer add primary key (answer_id);
可以發現,表的自增屬性是先設定的,但是表的主鍵的自增是在表建立之後進行的,所以mysql才會報錯。知道原因,那然後就是解決問題了。
我想說powerdesigner的人性化不是很好一些設定項好難找,不過這也很好理解,大軟體功能複雜,就有這個特點了,畢竟人家強大。下面解決這個問題。
在PDM的布局上(Diagram)雙擊一個表,彈出下列框:
然後點擊preview標籤頁,出現下列介面:
點擊圖中紅色圈起來的表徵圖,這個表徵圖就是關鍵了,點擊出現下面的視窗:
好,就是中紅色圈中的內容,選中inside,然後確定就可以了。
至此,powerdesigner產生的sql代碼可以順利的在mysql中執行了,現在產生的程式碼如下:
create table scnu_homework_scores( scores_id bigint not null auto_increment , primary key (scores_id));
可以看到主鍵以inside的方式產生了。
問題解決。