我想要插入觸發器來實現增量插入。我有一列「row_hash」來記錄每行的MD5(這裏我使用第name
和category
列的MD5)。如果新記錄具有相同的散列值,則觸發器應跳過插入,否則允許插入。MySql插入觸發器輸出NULL
DROP TRIGGER IF EXISTS test_trigger;
DELIMITER $$
CREATE TRIGGER test_trigger BEFORE INSERT ON test_table FOR EACH ROW
BEGIN
IF (SELECT COUNT(*) FROM test_table WHERE row_hash = MD5(CONCAT_WS('', new.name, new.category))) < 1 THEN
INSERT INTO test_table(_id, name, category, row_hash) VALUES (new._id, new.name, new.category, MD5(CONCAT_WS('', new.name, new.category)));
END IF;
END$$
下面是測試表:
create table test_table(_id varchar(10) primary key, name varchar(10), category varchar(2), row_hash char(32));
當我插入一個記錄,它輸出關於row_hash
柱NULL。
insert into test_table(_id, name, category) values('12344', 'dafas', 'A');
'12344','dafas','A',NULL
你能告訴我我在觸發器上做錯了嗎?
的[我的MySQL觸發器不起作用,簡單sintax,不復雜]可能的複製(http://stackoverflow.com/questions/40517731/my-mysql-trigger-doesnt-work-simple-sintax - 不復雜) – e4c5
@ e4c5,這不是這個問題的重複。他們有一個共同點 - MySQL觸發器 - 但所描述的問題是不同的。 –