powerDesigner 导出mysql的sql脚本,且包含注释

本文介绍如何解决PowerDesigner生成的SQL脚本在MySQL环境下无法执行的问题,并提供详细的步骤来正确配置表和列注释。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

powerDesigner 导出mysql的sql脚本,且包含注释

为了和项目原有的数据库设计工具保持一致,近期使用了powerDesigner碰到了一些使用问题,汇总记录,希望对你有所帮助.

软件环境情况

  1. powerDesigner16.5.5.2(4734)
  2. mysql 5.6.30
  3. Win10专业版

powerdesigner 16.5 生成的sql语句在mysql数据库无法成功执行

用pd导出的sql,默认无法正常执行会报错

[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'comment on table TB_PAYOUT_APPLY_UNIQUE is 
'结汇申请防重表'' at line 1

image-20201128194346573

默认导出的sql为:

# 为了减少篇幅,减少了部分字段注释
create table TB_PAYOUT_APPLY_UNIQUE 
(
   SRC_MERCHANT_ID      varchar(32)                    not null,
   MER_ORDER_NO         varchar(64)                    not null,
   UNION_TIME           datetime                       not null,
   PAYOUT_SEQNO         varchar(64)                    not null,
   GMT_CREATE           datetime                       null
);

comment on table TB_PAYOUT_APPLY_UNIQUE is 
'结汇申请防重表';

comment on column TB_PAYOUT_APPLY_UNIQUE.SRC_MERCHANT_ID is 
'交易来源商户号';
create index TB_PAYOUT_UNIQUE_IDX on TB_PAYOUT_APPLY_UNIQUE (
PAYOUT_SEQNO ASC
);

comment on column TB_PAYOUT_APPLY_UNIQUE.MER_ORDER_NO is '外部订单号'; 在mysql下是无法直接执行

mysql的单字段修改,使用alter table方法

ALTER TABLE table_name MODIFY COLUMN column_name TINYINT(tinyint表示column类型) COMMENT '-1:默认值,1:人员id,2:公司id';

这种写法必须要指定 字段类型:TINYINT(tinyint表示column类型)否则会报错.

那么需要修改sql的注释修改.

  1. 列注释修改

    1. 在Database–>edit Current DBMS… 设置dbms的属性,找到script–>objects–>column–>add

    2. 在原来的内容后添加 [ comment %.q:COMMENT%]]注意去掉一个]

      原来的内容为: %20:COLUMN% [%National%?national ]%DATATYPE%[%Unsigned%? unsigned][%ZeroFill%? zerofill][ [.O:[character set][charset]] %CharSet%][.Z:[ %NOTNULL%][%IDENTITY%? auto_increment:[ default %DEFAULT%]][ comment %.q:@OBJTLABL%]]

      添加后的内容为:%20:COLUMN% %30:DATATYPE%[.Z:[%Compressed%? compressed][ %NULLNOTNULL%][%IDENTITY%?[.O:[ default autoincrement][ identity]]:[%COMPUTE%? compute (%COMPUTE%):[ default %DEFAULT%]]] [%CONSTDEFN%][ comment %.q:COMMENT%]]

    3. 把script–>objects–>column–>ColumnComment的Value清空 .

  2. 表注释修改

    1. 在Database–>edit Current DBMS… 设置dbms的属性

    2. 找到script–>objects–>Table–>TableComment: value中

      修改后内容为 :alter table [%QUALIFIER%]%TABLE% comment %.60qA:COMMENT%

  3. 去掉主键注释

    1. 在Database–>edit Current DBMS… 设置dbms的属性,找到script–>objects–>Pkey–>PKeyComment 清空Value值, 如需要注释则修改其格式

其它修改

  1. 调整导出sql的编码格式

    database–>Generate Database–>Format Encoding :UTF-8 点击确定

调整后的sql

create table TB_OCEAN_PAYOUT_BILL_RELATION 
(
   SRC_MERCHANT_ID      varchar(32)                    not null  comment '交易来源商户号',
   MER_ORDER_NO         varchar(64)                    not null  comment '外部订单号',
   PAYOUT_SEQNO         varchar(64)                    not null  comment '结汇交易流水号',
   OCEAN_PAY_BILL_NO    numeric(16,0)                  null  comment '跨境支付单号',
   DT_CREATE            datetime                       null,
   constraint PK_TB_OCEAN_PAYOUT_BILL_RELATI primary key clustered (SRC_MERCHANT_ID, MER_ORDER_NO)
);

alter table TB_OCEAN_PAYOUT_BILL_RELATION comment '结汇申请支付单关联表';

PowerDesigner如何导出SQL?

第一种方式,导出多条:

  1. 选择菜单栏上Database
  2. 更改当前数据库类型>>Change Current DBMS 按钮
  3. 将当前的DBMS更改成需要的DBMS(如果用的就是当前的mysql5.0就无需更换)
  4. 选择Database菜单栏下 >>Generate Database
  5. 设置导出.sql名字和路径.
  1. 更改当前数据库类型>>Change Current DBMS 按钮

image-20201128194929900

  1. 将当前的DBMS更改成需要的DBMS(如果用的就是当前的mysql5.0就无需更换)

image-20201128194959759

  1. 也可以选择需要导出的表 Generate Database-> Selection

image-20201128195119746

第二种,导出单表:

  1. 选中表

  2. 右键选择 sql Preview,如下图所示

image-20201128194648794

image-20201128195302793

其它pd使用的一些方式

  1. PowerDesigner 导出表结构 到Excel
  2. powerdesigner 为字段添加注释和最大、最小、默认值、非空约束
  3. powerdesigner 大小写转换

参考文档

MySql 修改列的注释信息的方法
powerDesigner 正向工程生成sql注释问题 (mysql注释问题)

如果觉得文章对您有用,可以关注我的公众号 程序和猫 , 更加方便的交流.

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值