数据库升级失败!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>')
求详解…………
这个表有个主键“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语句有误!的主要内容,如果未能解决你的问题,请参考以下文章