让powerdesigner生成的sql语句在mysql上成功执行

花了大概半天的时间学习了下powerdesigner的用法,等我生成sql语句时,发现在生成的sql语句根本不能在mysql中执行,当然我的dbms是设置了mysql的。

在网上搜索一通,也没有什么好的解决方法。自己摸索了一下,已经搞定了。

首先说明下,我生成的sql语句不能在mysql上执行,是因为表中的主键包含了自增的属性,所以生成的代码不能在mysql上执行,错误如下:

就是说自增的那个列必须是主键,很显然是因为powerdsigner生成的代码不能被mysql正确的执行的,查看powerdesigner生成的代码如下:

[sql]  viewplain copy
  1. create table scnu_homework_answer  
  2.  
  3.    answer_id            bigint not null auto_increment   
  4.    tenant_id            bigint not null   
  5.    answer_iscorrected   smallint not null  
  6.    answer_tea_isdeleted smallint not null   
  7.    answer_stu_isdeleted smallint not null  
  8. );  
  9. alter table scnu_homework_answer  
  10.    add primary key (answer_id);  
可以发现,表的自增属性是先设置的,但是表的主键的自增是在表建立之后进行的,所以mysql才会报错。知道原因,那然后就是解决问题了。

我想说powerdesigner的人性化不是很好一些设置项好难找,不过这也很好理解,大软件功能复杂,就有这个特点了,毕竟人家强大。下面解决这个问题。

在PDM的布局上(Diagram)双击一个表,弹出下列框:

然后点击preview标签页,出现下列界面:


点击图中红色圈起来的图标,这个图标就是关键了,点击出现下面的窗口:

好,就是上图中红色圈中的内容,选中inside,然后确定就可以了。

至此,powerdesigner生成的sql代码可以顺利的在mysql中执行了,现在生成的代码如下:

[sql]  viewplain copy
  1. create table scnu_homework_scores  
  2.  
  3.    scores_id            bigint not null auto_increment  
  4.    primary key (scores_id)  
  5. );  
可以看到主键以inside的方式生成了。

问题解决。



来自:http://blog.sina.com.cn/s/blog_9db028610101j17e.html

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值