我真的很新创造触发器,但我需要一些非常简单的东西,但我还没有弄清楚如何去做。
基本上我有一个表格,以下结构
Table Name orksegment
+-----------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| direction | int(11) | YES | | NULL | |
| duration | bigint(20) | NO | | NULL | |
| localEntryPoint | varchar(255) | YES | | NULL | |
| localParty | varchar(255) | YES | | NULL | |
| loginString | varchar(255) | YES | | NULL | |
| portName | varchar(255) | YES | | NULL | |
| remoteParty | varchar(255) | YES | | NULL | |
| sessionOffset | bigint(20) | NO | | NULL | |
| tapeOffset | bigint(20) | NO | | NULL | |
| timestamp | datetime | YES | | NULL | |
| port_id | int(11) | YES | MUL | NULL | |
| session_id | int(11) | YES | MUL | NULL | |
| tape_id | int(11) | YES | MUL | NULL | |
| user_id | int(11) | YES | MUL | NULL | |
+-----------------+--------------+------+-----+---------+----------------+
我希望如果在我刚插入的记录中,localParty
就像是' 192%'记录将被删除。
我做了类似的事情:
CREATE TRIGGER Delete_recordings_MoH
AFTER INSERT
ON orksegment
FOR EACH ROW
delete from orksegment where localparty like '192%';
但是当我这样做时,看起来所有条目都被删除了,因为我没有在表格中获得任何新记录。
谢谢
答案 0 :(得分:0)
您可以创建一个触发器,在插入之前查找localParty的新列值,并插入记录,如果它不像' 192%'
我认为这段代码可行:
DELIMITER $$
CREATE TRIGGER trigger_name BEFORE INSERT ON orksegment FOR EACH ROW
BEGIN
IF (NEW.localParty!='192%') THEN
INSERT INTO orksegment(all the column names) VALUES(New.columnA, New.ColumnB etc);
END IF
END
$$
如果这对您有用,请告诉我。