我正在尝试编写触发器,我有下表:BookingRequest:
+-----------+---------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+---------+------+-----+---------+----------------+
| idRequest | int(11) | NO | PRI | NULL | auto_increment |
| roomClass | int(11) | NO | | NULL | |
| inDate | date | NO | | NULL | |
| outDate | date | NO | | NULL | |
| numOfBeds | int(11) | NO | | NULL | |
| status | int(11) | NO | MUL | NULL | |
| idUser | int(11) | NO | MUL | NULL | |
+-----------+---------+------+-----+---------+----------------+
状态表:
+------------+--------------------------------------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------------------------------------------+------+-----+---------+-------+
| idStatus | int(11) | NO | PRI | NULL | |
| nameStatus | enum('underConsideration','approved','rejected') | YES | | NULL | |
+------------+--------------------------------------------------+------+-----+---------+-------+
被占领的房间:
+--------------+---------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+---------+------+-----+---------+----------------+
| idOccupation | int(11) | NO | PRI | NULL | auto_increment |
| idRoom | int(11) | NO | | NULL | |
| idRequest | int(11) | NO | | NULL | |
+--------------+---------+------+-----+---------+----------------+
我需要一个触发器,如果将具有相同ID的请求插入到OccupiedRoom表中,它将把BookingReques中的状态更改为1,所以我尝试了类似的操作
create trigger occupy_trig after insert on OccupiedRoom
for each row
begin
if BookingRequest.idRequest= NEW.idRequest
then
update BookingRequest
set status = '1';
where idRequest = NEW.idRequest;
end if;
END;
而且它不起作用,所以任何建议都非常有用
尝试这个:
DELIMITER $$
CREATE TRIGGER occupy_trig
AFTER INSERT ON `OccupiedRoom` FOR EACH ROW
begin
DECLARE id_exists Boolean;
-- Check BookingRequest table
SELECT 1
INTO @id_exists
FROM BookingRequest
WHERE BookingRequest.idRequest= NEW.idRequest;
IF @id_exists = 1
THEN
UPDATE BookingRequest
SET status = '1'
WHERE idRequest = NEW.idRequest;
END IF;
END;
$$
DELIMITER ;
以下是我想做的: 当表中有新的 时,我需要通过设置 ' 来更新中的行 = ,以表示特定(旧)帐户已被编辑。 要求不是操作新插入的列,而是使用< code>pk = NEW.edit_on操作已经存在的列 但是,我无法更新同一个表: 请建议一个解决方法 PS:我已经完成了更新同一表后在触发器中更新表、插入到同一表中触发器mysql、在同一表上用插入后触发器更新以及在表上用Insert和update在
我正在尝试创建一个触发器,该触发器将在更新另一个表之后更新一个表。我需要它,这样如果数字列中的一个数字被更新,那么这需要记录在另一个表中。这就是我到目前为止所拥有的。。 测试更新到表: 如您所见,我正在尝试将新插入的用户编号存储到一个变量中,然后该变量将用于填充user_changes表的insertednumber列。任何帮助都将不胜感激,谢谢!
问题内容: 我目前正在创建某种库存系统。 我在哪里保存项目。在中,我有一栏或剩余的可用库存。 tbl1: 我还有一个表,我将所有交易保存在该表中。在这张桌子上有。 tbl2 我的问题是如何在UPDATE的同时插入一行。 例如:当我在request_by,product和qty_issued中插入记录时,我希望可以自动更新。因为我们向John发出了2(数量)的鼠标。tbl1中的鼠标记录应自动减少到“
问题内容: 我有两个表,其中一个命名如下 另一个表具有以下字段: SID CID Per 如何为以下内容编写触发器: 如果表h1-h0的任何字段中发生 更新,则使用以下值更新表中的列: ((总数为1s-总数为0s / (总数1s +总数0s))/ 100 在此先感谢 我开发了一个触发器,但是它不起作用,它在第11行说了错误,您能说出什么问题吗? 问题答案: 在定义触发器之前,请确保更改定界符。另外
问题内容: 这是我想做的事情: 当表中有新记录时,我需要通过设置以表示特定(旧)帐户已被编辑来更新where =中的行。 要求 不是 我要操纵 新插入的 列,而是要使用一个 已经存在的 列 但是,我无法更新同一张表: 请提出解决方法 PS:我已经走过了更新表触发器在同一个表更新后,插入到相同的表触发的mysql,更新与后同桌INSERT触发器和表后插入MySQL的触发器与插入和更新,但他们似乎没有
问题内容: 我有一个Maximo数据库,该数据库具有无法更改的表结构。我希望在创建或更新主电子邮件地址时将其复制到PERSON表中。以下结构描述了PERSON表和EMAIL表 PERSON表: EMAIL表: 如您所见,这两个表在PERSONID列上链接。这是我希望触发器执行的操作: 如果EMAIL表已更新或插入了新行,那么如果ISPRIMARY字段,我想将EMAILADDRESS字段复制到PER