所以我有一个表让我们称它为foo,它在每一行中都有一堆信息,加上一个计数。我想要的是每次在表上完成插入时,每行的count变量应该增加1.事情是我会有很多相同的行进入(这就是我需要计数的原因)所以我正在做IGNORE命令,因为我不希望在我的表中有大量的重复项。
所以我的插件是这样的:
INSERT IGNORE INTO foo (blah, blah, count)
VALUES ("blah", "blah", 1);
现在进行更新我正在做一个触发器:
CREATE TRIGGER fooCount BEFORE INSERT ON foo
FOR EACH ROW
BEGIN
IF (new.blah1=new.blah2 and new.blah1=new.blah2) THEN
SET new.count=new.count + 1;
END IF;
END;
但是,这似乎不起作用。有没有人对如何做得更好有任何其他建议或帮助?
答案 0 :(得分:0)
我不确定它是否可以在MySql中工作(编辑)。
尝试构建这样的SQL:
UPDATE Foo
SET count = count + 1
WHERE blah1 = 'blah' AND blah2 = "blah2"
IF @@ROWCOUNT = 0
BEGIN
INSERT INTO foo(...) values(...)
END
您需要修改我的代码才能在mysql中运行。在这里,您可以阅读所需的所有信息:
http://dev.mysql.com/doc/refman/5.0/en/if-statement.html
http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_row-count
答案 1 :(得分:-1)
只需在插入之前执行一个简单的查询以获取最后的Count
值,然后您的插入应该类似于:
INSERT IGNORE INTO foo (blah, blah, count) VALUES ("blah", "blah", "$lastcount+1");