日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

pd 生成mysql语句_PDMan + Navicat Premium + MySQL 数据库设计和工具

發布時間:2024/4/14 数据库 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pd 生成mysql语句_PDMan + Navicat Premium + MySQL 数据库设计和工具 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Navicat Premium 和 MySQL查看以前的一些文章

PDMan

簡介

PDMan是一款數據庫建模工具,國產開源易用。支持常用的MySQL、Oracal等數據庫,具體信息查看官網:http://www.pdman.cn/

使用

下載安裝

image.png

下載完成后,一路安裝即可。(windows最新版本2.2.0有bug,沒有同步按鈕,因此安裝了2.1.6)

安裝完成后,打開軟件是如下界面:

在這里插入圖片描述

創建新模塊

點擊下圖左側新建模塊

在這里插入圖片描述

建好模塊后,在數據表下,新建表:

image.png

點擊字段信息,即可編輯該表的字段:

image.png

字段名表示字段描述信息,邏輯名表示表的字段名

image.png

開始菜單欄

設置功能

點擊設置按鈕

在這里插入圖片描述

會顯示如下默認配置,每次建表時,都會加上如下字段

在這里插入圖片描述

這里可以根據情況修改一下

數據庫連接

點擊如下按鈕,可以連接到數據庫

在這里插入圖片描述

image.png

image.png

測試連接

image.png

同步數據到數據庫

選擇 模型版本 選項卡:

在這里插入圖片描述

點擊 初始化基線 出現如下頁面:

在這里插入圖片描述

填寫好信息后點擊確定,可以看到數據庫生成了一張 PDMAN_DB_VERSION 表用來記錄版本信息:

在這里插入圖片描述

再回到PDMan 發現界面如下:

在這里插入圖片描述

點擊下方的 未同步 按鈕,即可進行同步表操作。

修改數據庫同步

修改數據庫pdman會刪除原來的表格ums_member,生成臨時復制的表pdman_up_ums_member,如下圖:

image.png

image.png

注意說明COMMENT 里面的字符串出現英文的;報錯。還有就是默認值丟失DEFAULT 4,如下圖

image.png

同步成功如下圖

刷新Navicat數據庫,臨時表會刪除,然后更新修改

image.png

可以看到pdman_db_version這個是記錄我們更新記錄的,不要手動更改

image.png

自定義建表語句、刪除數據代碼語句、重建數據代表碼

在原本的數據庫表中存在desc字段,我們在使用數據庫備份的時候,一般都會給表名與字段名加上引號,如:

-- ----------------------------

-- Table structure for lwt_game_groupitem

-- ----------------------------

DROP TABLE IF EXISTS `lwt_game_groupitem`;

CREATE TABLE `lwt_game_groupitem` (

`ID` varchar(32) NOT NULL,

`NAME` varchar(32) DEFAULT NULL,

`TITLE` varchar(32) DEFAULT NULL,

`CODE` varchar(32) DEFAULT NULL,

`GROUPID` varchar(32) DEFAULT NULL,

`TYPE` varchar(32) DEFAULT NULL,

`MEMO` varchar(255) DEFAULT NULL,

`ORGI` varchar(32) DEFAULT NULL,

`STATUS` varchar(32) DEFAULT NULL,

`CREATETIME` timestamp NULL DEFAULT NULL,

`UPDATETIME` timestamp NULL DEFAULT NULL,

`CREATER` varchar(255) DEFAULT NULL,

`PLAYWAYID` varchar(32) DEFAULT NULL,

`GAME` varchar(32) DEFAULT NULL,

`DEFAULTVALUE` tinyint(4) DEFAULT NULL,

`VALUE` varchar(255) DEFAULT NULL,

`SORTINDEX` int(11) DEFAULT '0',

UNIQUE KEY `SQL121227155530400` (`ID`) USING BTREE

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

但是在使用pdman逆向數據后得到的表,并沒有加引號``,導致在同步數據庫的時候并初始化版本的時候,會報異常,此時我們就應該自定義建表語句、刪除數據代碼語句、重建數據代表碼

在這里插入圖片描述

創建數據表:

CREATE TABLE `{{=it.entity.title}}`(

{{ pkList = [] ; }}

{{~it.entity.fields:field:index}}

{{? field.pk }}{{ pkList.push(field.name) }}{{?}}

`{{=field.name}}` {{=field.type}} {{= field.notNull ? 'NOT NULL' : '' }} {{= field.autoIncrement ? 'AUTO_INCREMENT' : '' }} {{= field.defaultValue ? it.func.join('DEFAULT',field.defaultValue,' ') : '' }} COMMENT '{{=it.func.join(field.chnname,field.remark,' ')}}' {{= index < it.entity.fields.length-1 ? ',' : ( pkList.length>0 ? ',' :'' ) }}

{{~}}

{{? pkList.length >0 }}

PRIMARY KEY ({{~pkList:pkName:i}}`{{= pkName }}`{{= i

{{?}}

) COMMENT = '{{=it.func.join(it.entity.chnname,it.entity.remark,' ') }}';{{=it.separator}}

$blankline

刪除數據表:

DROP TABLE `{{=it.entity.title}}`;{{=it.separator}}/*SkipError*/

重建表數據:

DROP TABLE `PDMAN_UP_{{=it.oldEntity.title}}`;{{=it.separator}}/*SkipError*/

create table `PDMAN_UP_{{=it.oldEntity.title}}`

as select * from `{{=it.oldEntity.title}}`;{{=it.separator}}

$blankline

drop table `{{=it.oldEntity.title}}`;{{=it.separator}}

$blankline

CREATE TABLE `{{=it.newEntity.title}}`(

{{ pkList = [] ; }}

{{~it.newEntity.fields:field:index}}

{{? field.pk }}{{ pkList.push(field.name) }}{{?}}

`{{=field.name}}` {{=field.type}} {{= field.notNull ? 'NOT NULL' : '' }} COMMENT '{{=it.func.join(field.chnname,field.remark,';')}}' {{= index < it.newEntity.fields.length-1 ? ',' : ( pkList.length>0 ? ',' :'' ) }}

{{~}}

{{? pkList.length >0 }}

PRIMARY KEY ({{~pkList:pkName:i}}`{{= pkName }}`{{= i

{{?}}

) COMMENT = '{{=it.func.join(it.newEntity.chnname,it.newEntity.remark,';') }}';{{=it.separator}}

$blankline

{{ sameCols = it.func.intersect(it.newEntity.fields,it.oldEntity.fields) ;}}

insert into `{{=it.newEntity.title}}`(

{{~sameCols:field:index}}

`{{=field.name}}`{{? index

{{~}}

)

select

{{~sameCols:field:index}}

`{{=field.name}}`{{? index

{{~}}

from `PDMAN_UP_{{=it.oldEntity.title}}`;{{=it.separator}}

$blankline

drop table `PDMAN_UP_{{=it.oldEntity.title}}`;{{=it.separator}}

$blankline

{{~it.newEntity.indexs:index}}

ALTER TABLE `{{=it.newEntity.title}}` ADD {{? index.isUnique}}UNIQUE{{??}}INDEX{{?}} `{{=index.name}}`({{=it.func.join(...index.fields,',')}});{{=it.separator}}

{{~}}

總結

以上是生活随笔為你收集整理的pd 生成mysql语句_PDMan + Navicat Premium + MySQL 数据库设计和工具的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。