Err] 1064 - You have an error in your ……pd生成mysql导入失败问题

Err] 1064 - You have an error in your ……pd生成mysql导入失败问题,第1张

首先,你必须有db_tmlog库存在其次:你用了AUTO_INCREMENT必须是Key再有`file`MEDIUMBLOBBINARY定义了两个类型,BINARY是多余的完整的修改好的SQL为CREATETABLE`db_tmlog`.

主要问题有以下几点: 1、当字段类型为text,longtext,ENUM的时候,一定要把"National"关键字去掉,可以双击表-->"Columns"-->双击字段-->"MySql"-->去掉Charset中的"National"复选。 2、一定要把主键脚本生成在create table里面,可以在生成数据库脚本的时候进行设置:菜单Database-->Database Generation-->Options-->选择左边的"Key"-->把右边的"Outside"改为"Inside" 还有其它要注意的地方: 1、从数据库中反向导入到PD中的时候,ENUM字段的默认值会被加上~,要去掉才可以。 2、在生成SQL文件的时候,如果是UTF8的话,也要设置一下导出的格式,不然中文是乱码 总的来讲,PowerDesigner是一个很不错的东东,至少提供有地方让我们去设置。

在powerBuilder中新建一个Physical Data Model,在其中新建一个用户表,信息如下图所示

此时的SQL语句可从其中的Preview视图中得到,如下图所示:

这个时候生成的sql语句是没有注释的,而且sql语句可能也不是适合自己所对应的数据库语言。此时可以通过以下方法来生成注释并且选择所需的数据库语言。

1、为sql生成注释, *** 作如下,我用的是PowerDesigner12.5,在其中选择Tools----》Excute commands-----》Edit/Run Script打开的窗口中添加以下信息

'****************************************************************************** '* File: name2comment.vbs '* Purpose: Database generation cannot use object names anymore ' in version 7 and above. ' It always uses the object codes. '' In case the object codes are not aligned with your ' object names in your model, this script will copy ' the object Name onto the object Comment for ' the Tables and Columns. ''* Title: '* Version: 1.0 '* Company: Sybase Inc. '******************************************************************************

Option ExplicitValidationMode = TrueInteractiveMode = im_Batch

Dim mdl ' the current model

' get the current active model Set mdl = ActiveModel If (mdl Is Nothing) ThenMsgBox "There is no current Model "ElseIf Not mdl.IsKindOf(PdPDM.cls_Model) ThenMsgBox "The current model is not an Physical Data model. "Else ProcessFolder mdl End If

' This routine copy name into comment for each table, each column and each view ' of the current folder Private sub ProcessFolder(folder) Dim Tab 'running table for each Tab in folder.tables if not tab.isShortcut then '把表明作为表注释,其实不用这么做 tab.comment = tab.name Dim col ' running column for each col in tab.columns '把列name和comment合并为commentcol.comment= col.name nextend ifnext

Dim view 'running view for each view in folder.Views if not view.isShortcut then view.comment = view.name end ifnext

' go into the sub-packages Dim f ' running folder For Each f In folder.Packages if not f.IsShortcut then ProcessFolder f end ifNextend sub

点击run后,可以看到刚刚的preview视图窗口中已经如下图所示

2、更换数据库sql语句。

选择Database---》change current DBMS,在DBMS中选择对应的数据库,如Microsoft SQL Server 2005,点击确定后,然后选择Database---》Generate Database选项,在d出的窗口中选择生成sql文件的保存路径,点击确定,则可看到生成的sql语言完全是按照sqlserver2005的标准。如下图所示:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8693850.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-20
下一篇 2023-04-20

发表评论

登录后才能评论

评论列表(0条)

保存