2012-02-08

今天的主要工作就是整理日结中所出现的问题,所出现的问题情况是:

 

在日结的过程中,需要将一部分表的数据转移到历史表,转移之后,并将此数据表中当天的数据删除掉

 

将业务表的数据转移到历史表以及删除业务表中的数据都是为了能减小业务表中数据的数量,提高查询的速度

 

做这些操作的顺序是:

 

1.将业务表中的数据转移到历史表(一个sql)

 

2.删除业务表中结算日的数据(一个sql)

 

以上操作有很多sql,放到一起批量执行

 

在第一步的时候出现了有惟一性约束的字段要插入重复的数据,导致第一步进行了一半就结束了,开始第二步的操作!

 

问题就出现了,业务表中的数据有部分并没有转移到历史表中,并且业务表中的数据此时已经被删除了,导致部分业务表的

 

数据找不到了。

 

改正以下mysql语句:CREATE TABLE employees ( EmployeeID int NOT NULL AUTO_INCREMENT COMMENT '工号', Name varchar(20) NOT NULL COMMENT '姓名', sex char(2) DEFAULT NULL COMMENT '性别', BirthDate date DEFAULT NULL COMMENT '出生日期', Phone varchar(24) DEFAULT NULL COMMENT '电话', HireDate date DEFAULT NULL COMMENT '入职日期', Address varchar(15) DEFAULT NULL COMMENT '工作地点', Title varchar(30) DEFAULT NULL COMMENT '职位', ReportsTo int(11) DEFAULT NULL COMMENT '上级工号', PRIMARY KEY (EmployeeID), KEY FK_Employees_Employees (ReportsTo), KEY Name (Name), CONSTRAINT FK_Employees_Employees FOREIGN KEY (ReportsTo) REFERENCES employees (EmployeeID), CONSTRAINT employees_chk_1 CHECK (((sex = '男') or (sex = '女'))) ) ENGINE=InnoDB AUTO_INCREMENT=11; insert into employees(EmployeeID,Name,sex,BirthDate,Phone,HireDate,Address,Title,ReportsTo) values (1,'蔡小叶','女','1983-11-10','15651718131','2014-01-02','海南省三亚市','销售员',NULL), (2,'陈会玲','女','1983-12-24','15651792676','2011-09-10','河南省焦作市','总经理',NULL), (3,'陈荣','女','1984-03-14','18052098320','2014-09-26','江苏省南京市','销售员',NULL), (4,'江小利','女','1983-12-10','15651793136','2012-09-07','四川省蒲江市','销售员',NULL), (5,'吕倩','女','1980-10-28','15651036060','2014-08-27','浙江省宁波市','销售经理',NULL), (6,'于小飞','男','1984-02-19','15605167963','2013-12-16','湖北省宜昌市','销售员',NULL), (7,'袁卫华','男','1983-09-23','18761666129','2014-01-09','江苏省溧阳县','销售员',NULL), (8,'张家瑞','男','1983-05-26','18652204573','2012-09-05','四川省宜宾市','销售经理',NULL), (9,'张玉','男','1984-02-15','18914785173','2013-04-21','安徽省安庆市','销售员',NULL), (10,'赵恒','男','1983-03-10','18761662284','2012-10-30','深圳',NULL,NULL); 停止 复制
06-12
这是一个创建和插入数据到 MySQL 数据库中的语句,但是有一个小问题。 在表的 CONSTRAINT 中,sex 字段的 CHECK 约束条件应该是 `CHECK (sex = '男' OR sex = '女')`,而不是 `CHECK (((sex = '男') or (sex = '女'))) `。 正确的语句如下: ``` CREATE TABLE employees ( EmployeeID int NOT NULL AUTO_INCREMENT COMMENT '工号', Name varchar(20) NOT NULL COMMENT '姓名', sex char(2) DEFAULT NULL COMMENT '性别', BirthDate date DEFAULT NULL COMMENT '出生日期', Phone varchar(24) DEFAULT NULL COMMENT '电话', HireDate date DEFAULT NULL COMMENT '入职日期', Address varchar(15) DEFAULT NULL COMMENT '工作地点', Title varchar(30) DEFAULT NULL COMMENT '职位', ReportsTo int(11) DEFAULT NULL COMMENT '上级工号', PRIMARY KEY (EmployeeID), KEY FK_Employees_Employees (ReportsTo), KEY Name (Name), CONSTRAINT FK_Employees_Employees FOREIGN KEY (ReportsTo) REFERENCES employees (EmployeeID), CONSTRAINT employees_chk_1 CHECK (sex = '男' OR sex = '女') ) ENGINE=InnoDB AUTO_INCREMENT=11; INSERT INTO employees ( EmployeeID, Name, sex, BirthDate, Phone, HireDate, Address, Title, ReportsTo ) VALUES ( 1, '蔡小叶', '女', '1983-11-10', '15651718131', '2014-01-02', '海南省三亚市', '销售员', NULL ), ( 2, '陈会玲', '女', '1983-12-24', '15651792676', '2011-09-10', '河南省焦作市', '总经理', NULL ), ( 3, '陈荣', '女', '1984-03-14', '18052098320', '2014-09-26', '江苏省南京市', '销售员', NULL ), ( 4, '江小利', '女', '1983-12-10', '15651793136', '2012-09-07', '四川省蒲江市', '销售员', NULL ), ( 5, '吕倩', '女', '1980-10-28', '15651036060', '2014-08-27', '浙江省宁波市', '销售经理', NULL ), ( 6, '于小飞', '男', '1984-02-19', '15605167963', '2013-12-16', '湖北省宜昌市', '销售员', NULL ), ( 7, '袁卫华', '男', '1983-09-23', '18761666129', '2014-01-09', '江苏省溧阳县', '销售员', NULL ), ( 8, '张家瑞', '男', '1983-05-26', '18652204573', '2012-09-05', '四川省宜宾市', '销售经理', NULL ), ( 9, '张玉', '男', '1984-02-15', '18914785173', '2013-04-21', '安徽省安庆市', '销售员', NULL ), ( 10, '赵恒', '男', '1983-03-10', '18761662284', '2012-10-30', '深圳', NULL, NULL ); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值