这只是一个简单的问题,我很抱歉,如果它很简单,但我找不到任何好的例子,因为我确信它不是那么难,我只是不确定语法。
我需要更新一个表'飞机'中的状态属性,当有人将飞机插入一个名为服务的表中时,他们也会设置状态,说'不活动'我需要它来对应另一个表。我觉得这应该很容易,但现在已经挣扎了一段时间。
提前谢谢你。
这是飞机表
Create Table Airplane(
Name Char(25) NOT NULL,
aID Int NOT NULL Primary Key,
aCount Int,
status Char(8) NOT NULL DEFAULT 'Active',
cost double Default 0.0
);
这是服务表,它们可能会发生变化,只是针对所有密集目的专注于此触发器。
Create table Servicing(
TicketNumber Int NOT NULL AUTO_INCREMENT Primary Key,
Mechanic Char(50) NOT NULL,
Problem Char(25) NOT NULL,
Airplane Char(25) NOT NULL,
TimeComplete CHAR(25) NOT NULL,
Servicing Char(25) NOT NULL,
Status Char(25) NOT NULL DEFAULT 'Inactive');
这是触发器,但似乎遇到了问题。
DELIMITER $$
CREATE TRIGGER Airplane_status_update
AFTER INSERT ON Servicing
FOR EACH ROW
BEGIN
UPDATE Airplane status
SET status = new.status
WHERE name = new.airplane;
END $$
DELIMITER ;
答案 0 :(得分:1)
你可能正在寻找像这样的东西
DELIMITER $$
CREATE TRIGGER airplane_status_update
AFTER INSERT ON servicing
FOR EACH ROW
BEGIN
UPDATE airplane
SET status = NEW.status
WHERE airplane_id = NEW.airplane_id;
END $$
DELIMITER ;
您显然需要调整指定正确字段名称的UPDATE语句,因为您没有为服务和飞机表发布DDL