标题:相数据库中添加数据时的错误
只看楼主
川云漠漠
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2014-10-8
结帖率:57.89%
已结贴  问题点数:2 回复次数:3 
相数据库中添加数据时的错误
--创建数据库
CREATE DATABASE ProductsSALES



--创建商品大类表
USE ProductsSALES
GO
CREATE  TABLE 商品大类
(
  大类名称  varchar(10) NOT NULL,
  大类编号  varchar(10) NOT NULL PRIMARY KEY
)

            

--创建商品小类表及生产厂家表
USE ProductsSALES
GO
CREATE TABLE 商品小类
(
  小类编号 varchar(10)  NOT NULL PRIMARY KEY,
  小类名称 varchar(50)  NOT NULL,
  大类编号 varchar(10)  NOT NULL REFERENCES 商品大类
)
GO
CREATE TABLE 生产厂家
(
  厂家编号 varchar(10)  NOT NULL PRIMARY KEY,
  厂家名称 varchar(100) NOT NULL,
  国家     varchar(50)  NOT NULL
)



--创建销售明细、商品信息及调价表
USE ProductsSALES
GO
CREATE TABLE 商品信息
(
  条形码    varchar(50) NOT NULL,
  商品名称  varchar(60) NOT NULL,
  小类编号  varchar(10) NOT NULL,
  大类编号  varchar(10) NOT NULL,
  厂家编号  varchar(10) NOT NULL,
  进货价    money    NOT NULL,
  零售价    money     NOT NULL
)
GO
CREATE TABLE 销售明细
(
  流水号 varchar(50) NOT NULL,
  条形码 varchar(50) NOT NULL,
  数量   int         NOT NULL,
  金额   money       NULL,
  销售号  varchar(50)  NOT NULL,
  销售时间  datetime  NOT NULL,
  操作员   varchar(60) NOT NULL  
)
GO
CREATE TABLE 调价表
(
  条形码  varchar(50)  NOT NULL,
  流水号  varchar(50)  NOT NULL,
  调价前价格   money  NOT NULL,
  调价时间  datetime  NOT NULL,
  操作员   varchar(60) NOT NULL
)



--创建操作员表
USE ProductsSALES
GO
CREATE TABLE 操作员表
(
  操作员编号  varchar(5) NOT NULL PRIMARY KEY,
  员工类型    varchar(3),
  姓名        varchar(20)  NOT NULL,
  权限        varchar(8),
  薪水        money,
  密码       varchar(50)
)



--添加主键和外键
ALTER TABLE 商品信息
ADD PRIMARY KEY(条形码)
ALTER TABLE 销售明细
ADD FOREIGN KEY(条形码)  REFERENCES 商品信息(条形码)

ALTER TABLE 商品大类
ADD PRIMARY KEY(大类编号)
ALTER TABLE 商品小类
ADD FOREIGN KEY(大类编号) REFERENCES 商品大类(大类编号)




--创建考勤表
USE ProductsSALES
GO
CREATE TABLE 考勤表
(
  序号 numeric(18,0) IDENTITY(1,1) NOT NULL,
  操作员编号  varchar(5)  NOT NULL,
  考勤时间  datetime DEFAULT GETDATE()
)



--向生产厂家中添加数据
USE ProductsSALES
GO
INSERT INTO 生产厂家 VALUES('101010001','青岛海尔','中国')
INSERT INTO 生产厂家 VALUES('101010002','杭州娃哈哈','中国')
INSERT INTO 生产厂家 VALUES('101010009','四川长虹','中国')
INSERT INTO 生产厂家 VALUES('101010012','海信集团','中国')
INSERT INTO 生产厂家 VALUES('101010011','同仁堂制药','中国')
INSERT INTO 生产厂家 VALUES('101020001','修正制药','中国')
INSERT INTO 生产厂家 VALUES('101020003','联想集团','中国')
INSERT INTO 生产厂家 VALUES('101030001','高等教育出版社','中国')
INSERT INTO 生产厂家 VALUES('101080001','电子工业出版社','中国')
INSERT INTO 生产厂家 VALUES('101080002','集团','中国')
INSERT INTO 生产厂家 VALUES('101090001','东盛科技','中国')
INSERT INTO 生产厂家 VALUES('101100032','白猫集团','中国')
INSERT INTO 生产厂家 VALUES('101110008','纳爱斯集团','中国')
INSERT INTO 生产厂家 VALUES('103030001','IBM','美国')
INSERT INTO 生产厂家 VALUES('103030002','INTEL','美国')



--向商品大类表中插入数据
USE ProductsSALES
GO
INSERT INTO 商品大类 VALUES('01','食品机械')
INSERT INTO 商品大类 VALUES('02','农牧渔类')
INSERT INTO 商品大类 VALUES('03','简加工类')
INSERT INTO 商品大类 VALUES('04','深加工类')
INSERT INTO 商品大类 VALUES('05','食品包装')
INSERT INTO 商品大类 VALUES('06','食品添加剂')
INSERT INTO 商品大类 VALUES('07','办公用品')



--向商品小类中添加数据
USE ProductsSALES
GO
INSERT INTO 商品小类 VALUES('00001','米面类','03')
INSERT INTO 商品小类 VALUES('00002','食用油','03')
INSERT INTO 商品小类 VALUES('00003','新鲜水果','02')
INSERT INTO 商品小类 VALUES('00004','干果、坚果','02')
INSERT INTO 商品小类 VALUES('00005','鲜活水产品','02')
INSERT INTO 商品小类 VALUES('00006','鲜活畜禽','02')
INSERT INTO 商品小类 VALUES('00007','蛋类','02')
INSERT INTO 商品小类 VALUES('00008','食用菌','02')
INSERT INTO 商品小类 VALUES('00009','咖啡豆、可可','02')
INSERT INTO 商品小类 VALUES('00010','其他未分类','02')
INSERT INTO 商品小类 VALUES('00011','加工水产品','03')
INSERT INTO 商品小类 VALUES('00012','蔬菜制品','03')
INSERT INTO 商品小类 VALUES('00013','肉类','03')
INSERT INTO 商品小类 VALUES('00014','糖类','03')
INSERT INTO 商品小类 VALUES('00015','肉制品','04')
INSERT INTO 商品小类 VALUES('00016','豆制品','04')
INSERT INTO 商品小类 VALUES('00017','乳制品','04')
INSERT INTO 商品小类 VALUES('00018','书籍','07')
INSERT INTO 商品小类 VALUES('00019','电脑耗材','07')


错误提示如下:
搜索更多相关主题的帖子: 数据库 
2014-11-24 20:02
volte
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:69
帖 子:1167
专家分:1316
注 册:2004-12-19
得分:0 
表中是否已有数据,你又执行了,导致主键约束

大家都是朋友,有空就来坐坐!
2014-11-25 10:35
厨师王德榜
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:183
帖 子:942
专家分:4724
注 册:2013-2-16
得分:2 
很明显是外鍵约束了,再结合你的实例来看,你在向商品大类里添加数据时,添加的顺序是反的,"大类名称"和"大类编号"写反了.所以外鍵约束生效了.
一句话,你在向商品大类添加数据时,如果不偷懒,显式的指定列名称,也就不会出现这个错误了,
偷懒不得呀!!
2014-11-25 11:33
volte
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:69
帖 子:1167
专家分:1316
注 册:2004-12-19
得分:0 
不错,楼上看的比较细啊。

大家都是朋友,有空就来坐坐!
2014-11-28 17:11



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-439102-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.325055 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved