花了大概半天的时间学习了下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的方式生成了。
问题解决。
本文详细阐述了在使用PowerDesigner生成SQL代码时遇到MySQL执行错误的问题,并提供了具体的解决方法,通过调整配置使自增属性在主键定义之前,从而确保生成的SQL代码在MySQL数据库中正确执行。

8682

被折叠的 条评论
为什么被折叠?



