重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
不可以用可视化的方式创建,用create
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:申请域名、虚拟空间、营销软件、网站建设、凤泉网站维护、网站推广。
trigger就可以了。
创建触发器
在MySQL中,创建触发器语法如下:
CREATE
TRIGGER
trigger_name
trigger_time
trigger_event
ON
tbl_name
FOR
EACH
ROW
trigger_stmt
再看看别人怎么说的。
希望你自己写 ,做2个触发器,
第一个触发后可以做对overtime插入操作,这里你没说触发类型????
Create Trigger '增加加班信息'
On overtime --在overtime表中创建触发器
for ????? ----触发的事件
As --事件触发后所要做的事情
begin
insert INTO overtime(你要加的信息)
end
第二个 基于overtime 表的触发update类的 更新加班信息
Create Trigger '修改考勤信息表'
On overtime --在overtime表中创建触发器
for insert --触发的事件
As --事件触发后所要做的事情
if Update(某字段)
begin
Update attend
set 你做overtime的插入后 attend 应该的变化
From attend ,Inserted i --Inserted临时表
Where attend.emp_id =i.emp_id
end
做完之后 你插入几次检测下数据,再写上报错和其它
CREATE TABLE test1(a1 INT);
CREATE TABLE test2(a2 INT);
CREATE TABLE test3(a3 INT NOT NULL AUTO_INCREMENT PRIMARY KEY);
CREATE TABLE test4(
a4 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
b4 INT DEFAULT 0
);
DELIMITER |
CREATE TRIGGER testref BEFORE INSERT ON test1
FOR EACH ROW BEGIN
INSERT INTO test2 SET a2 = NEW.a1;
DELETE FROM test3 WHERE a3 = NEW.a1;
UPDATE test4 SET b4 = b4 + 1 WHERE a4 = NEW.a1;
END
|
DELIMITER ;
INSERT INTO test3 (a3) VALUES
(NULL), (NULL), (NULL), (NULL), (NULL),
(NULL), (NULL), (NULL), (NULL), (NULL);
INSERT INTO test4 (a4) VALUES
(0), (0), (0), (0), (0), (0), (0), (0), (0), (0);
如果将下述值插入表test1,如下所示:
mysql INSERT INTO test1 VALUES
- (1), (3), (1), (7), (1), (8), (4), (4);
Query OK, 8 rows affected (0.01 sec)
Records: 8 Duplicates: 0 Warnings: 0