数据库升级失败!SQL文件不全或SQL语句有误!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库升级失败!SQL文件不全或SQL语句有误!相关的知识,希望对你有一定的参考价值。

我买了一套K3 V12.3 WISE 的,现有的是KIS 10.0SP1 用现在KIS 10.0SP1 再K3 10.3中升级提示:数据库升级失败!SQL文件不全或SQL语句有误!
错误描述:违反了 PRIMARY KEY 约束 'PK_ItemClass'。不能在对象 't_ItemClass' 中插入重复键。
Sql文件名:C:\WINDOWS\system32\Kdcom\SqlSrv\SP_K3V10.2BaseData.sql
Sql内容:--增加“计划项目”
if not exists( select 1 from t_itemclass where FItemClassID=2021 and fname='计划项目')
Insert Into t_ItemClass

(FItemClassID,FNumber,FName,FSQLTableName,FVersion,FImport,FBrNo,FUserDefilast,FName_CHT,FN
ame_EN) Values (2021,'2021','计划项目','t_scPlanItem',0,0,'0',100,'计画项目','<Not
Matched>')
求详解…………

参考技术A t_ItemClass这个表中插入数据的时候,发现有主键重复的现象,导致后续的数据无法插入。

这个表有个主键“PK_ItemClass”对应的字段应该是FItemClassID吧,你插入数据之前判断了重复,但是是通过复合条件判断的,FItemClassID+fname,数据库里没有FItemClassID=2021 and fname='计划项目'的记录不代表没有FItemClassID=2021的记录呀,FItemClassID是主键,必须保证其唯一性。

MySQLdump导出sql脚本

1.问题描述

  通过图形化工具,在查询窗口用select语句按条件查询出所需结果,然后用“导出向导”把查询结果导成sql文件,但是导出来的sql语句不全,没有表名、字段名。

  

  通过图形化工具,试了好多次都不行,然后使用了MySQLdump

2.通过MySQLdump导出insert sql脚本文件

#mysql导出insert带字段的sql脚本数据
#mysqldump -u用户名 -p密码 -h数据库主机ip -P端口号 --skip-extended-insert --complete-insert 数据库名 表名  -t -c --where="条件">~/test.sql          
            --skip-extended-insert 一行一行的导出
            -t 不会产生create table建表和drop table语句
            -c  产生完整的insert语句(区别字段)
            --where 拼接条件,只导出符合条件的数据

3.MySQLdump参数详细,参考:

#mysqldump --help

 

  

以上是关于数据库升级失败!SQL文件不全或SQL语句有误!的主要内容,如果未能解决你的问题,请参考以下文章

Navicat运行sql文件导入数据不全或导入失败

怎样把CSV格式的文件导入到SQL 2005?

python运行sql文件且失败可以回滚

python运行sql文件且失败可以回滚

显示不全或乱码,dos2unix和修改系统字符集的办法不管用怎么办

html2canvas截图不全或空白