使用PD(PowerDesigner)图如何快速生成创建数据库表的SQL脚本
打开PD软件:
1.新建概念模型(conceptual Data Model)
File-->New Model-->Conceptual Data Mode
或者点击工作区,右键-->New Model-->Conceptual Data Mode
2.打开模型时,会有方格线,去除方格线
Tools-->Dis

3.创建表并建立关系:
各个含义如下:

但是我在创建的过程中,报错如下:

在创建的过程中,人员表里有主键Code,性别表里也有主键Code,但是在创建的过程是报错,说是Code已经被占用了,
去除属性名重复的方法如下:
使用PD中,CDM默认实体属性不能重名,在CDM中唯一。可以通过设置,取消该限制。
选择 Tools->Model Options,取消 Data Item 组的Unique code 和 Allow reuse复选框。
Unique:设置实体属性是否唯一
Allow reuse:设置实体属性是否允许重用
注:默认使用唯一代码的好处是,改变属性,其他引用该属性的实体,都一起修改。该功能可以通过domain实现,设置属性在同一domain中,当需要修改字段类型的时候,修改domain一处即可。
4.将概念模型转换成物理模型
方法一:
操作:Tools-->GeneratePhysical Data Model
快捷键:ctrl+shift+p
注意:如果你的数据库是SQL server,请一定要选择要选择SQL Server 2008,
进入下图界面:(根据自己的需求切换相应的DBMS(数据库)点击【确定】就会将概念模型转换成物理模型).

??但是在生成的过程中报了一个实体属性重复的错误(如下图):

Checking data item ...
- Data Item name uniqueness
- Data Item code uniqueness
Error The following data item does not have unique code:
-> Data Item '编码' (<Model>)
-> Data Item '编码' (<Model>)
- Data Item not used
- Data Item used multiple times
解释:从上面的错误可以看出,PD给我们说,我在检查所有实体属性的过程中,发现了重复的属性,有两个相同的属性(Code和Name):编码
这是因为虽然我们在概念模型中:创建实体的过程中允许实体使用相同的编码和名称,但是我们并没有同时修改:在概念模型转换为物理模型的检查规则,我们这里,可以去修改检查实体的报错规则就可以了。
解决办法:

方法二:
General不变,Detail中将Check model去掉,就在转换为物理模型时不再检查实体错误了(当然这些错误是PD定义的默认规则)

5.物理模型如下:

6.生成带注释的sql
a.操作:Database-->Generate DataBase。。。,进入下图页面,

b、勾上以上复选框,否则当你备注为空的时候注释出不来;反之,如果你备注不为空那么名称(Name)才能作为注释出现!!
在Options可以选择要生存脚本的内容,可以选择是否创建数据库的脚本,选择要生成脚本的表

c、在selection中选择你需要生成sql的模块,指定输出目录。
7.PD图转换为脚本至此结束。
备注:有了脚本,找个数据库执行吧!
如果自己懒得修改脚本,最好新建个数据库去执行; 你勤快些的话可以把其他没用的脚本干掉,只保留主要脚本就OK了。
使用PD(PowerDesigner)图如何快速生成创建数据库表的SQL脚本的更多相关文章
- 创建数据库表的SQL语句
创建表.视图.索引的sql语句如下: CREAT TABLE (列名,数据类型,约束) create view(创建视图) create index (创建索引) 1.primary key(主键) ...
- MySQL必知必会-官方数据库表及SQL脚本导入生成
最近在复习SQL语句,看的是MySQL必知必会这本书,但是发现附录中只有表设计,没有表的具体数据.所以在学习相应的语句中体验不是很好,去网上查了数据库的内容,自己慢慢导入到了数据库中.把表放出来作为参 ...
- 基于CentOS的MySQL学习补充三--使用Shell批量创建数据库表
本文出处:http://blog.csdn.net/u012377333/article/details/47006087 接上篇介绍<基于CentOS的Mysql学习补充二--使用Shell创 ...
- 使用PowerDesigner创建数据库表图文并茂版
使用PowerDesigner创建数据库表图文并茂版 使用PowerDesigner 建数据库表. 一直很忙,没有时间写东西.这次搞点会声会色的,嘿嘿 此技能为项目经理必备技能. 本次主角: 1.在w ...
- GreenDao 工具类 --- 使用 Json 快速生成 Bean、表及其结构,"炒鸡"快!
作者:林冠宏 / 指尖下的幽灵 掘金:https://juejin.im/user/587f0dfe128fe100570ce2d8 博客:http://www.cnblogs.com/linguan ...
- django使用model创建数据库表使用的字段
Django通过model层不可以创建数据库,但可以创建数据库表,以下是创建表的字段以及表字段的参数.一.字段1.models.AutoField 自增列= int(11) 如果没有的话,默认会生成一 ...
- Sql中根据旧表创建新表的SQL语句
今天在网上查了下,根据旧表创建新表的SQL语句,网上给了两个答案 create table tab_new like tab_old (使用旧表创建新表) create table tab_new a ...
- JAVA 自动生成对应数据库表的JPA代码工具
http://blog.csdn.net/zheng2008hua/article/details/6274659 关键词:JPA 数据库表代码自动生成,JPA代码生成 自动生成对应数据库表的 ...
- 数据库(一)--通过django创建数据库表并填充数据
django是不能创建数据库的,只能够创建数据库表,因此,我们在连接数据库的时候要先建立一个数据库. 在models.py中 from django.db import models class Pu ...
随机推荐
- SDWebImage源码解读之SDWebImageCache(下)
第六篇 前言 我们在SDWebImageCache(上)中了解了这个缓存类大概的功能是什么?那么接下来就要看看这些功能是如何实现的? 再次强调,不管是图片的缓存还是其他各种不同形式的缓存,在原理上都极 ...
- const extern static 终极指南
const extern static 终极指南 不管是从事哪种语言的开发工作,const extern static 这三个关键字的用法和原理都是我们必须明白的.本文将对此做出非常详细的讲解. co ...
- mongodb
修改所有的记录: > db.t_express_apply.update({},{$set:{"isStatus" : 0}},{multi:true})WriteResul ...
- 用Kotlin实现Android定制视图(KAD 06)
作者:Antonio Leiva 时间:Dec 27, 2016 原文链接:https://antonioleiva.com/custom-views-android-kotlin/ 在我们阅读有关c ...
- java.IO输入输出流:过滤流:buffer流和data流
java.io使用了适配器模式装饰模式等设计模式来解决字符流的套接和输入输出问题. 字节流只能一次处理一个字节,为了更方便的操作数据,便加入了套接流. 问题引入:缓冲流为什么比普通的文件字节流效率高? ...
- docker – 你应该知道的10件事
容器并不是一个全新的技术,但这并不妨碍Docker如风暴一样席卷整个世界. 如果你在IT圈里,你一定听说过Docker.就算与其他热门技术,如:Puppet/Chef,Hadoop或者MongoD ...
- SQL SERVER导入数据到ORACLE的方法总结
我们偶尔会有将数据从SQL SERVER导入到ORACLE当中的这种需求,那么这种跨数据库导数有那些方法呢?这些方法又有那些利弊呢? 下面比较肤浅的总结了一些可行的方法. 1:生成SQL脚本然后去OR ...
- Linux基础介绍【第四篇】
Linux文件和目录的属性及权限 命令: [root@oldboy ~]# ls -lhi total 40K 24973 -rw-------. 1 root root 1.1K Dec 10 16 ...
- 谁偷了我的热更新?Mono,JIT,iOS
前言 由于匹夫本人是做游戏开发工作的,所以平时也会加一些玩家的群.而一些困扰玩家的问题,同样也困扰着我们这些手机游戏开发者.这不最近匹夫看自己加的一些群,常常会有人问为啥这个游戏一更新就要重新下载,而 ...
- 轻量级的日期插件--datebox
jquery的日期插件有好几款,H5中的input也可以自带日期选择.但为什么要再写一个,有两个理由,一个是引用的文件太大,而有时候只需要很简单的功能,二个是想加一些自定义的效果不好改. 我写的这个功 ...