关于mysql触发器,有没有办法实现这样的功能?
CREATE TRIGGER t_insertonlineuser_before_insert
BEFORE INSERT ON online_user_tb
FOR EACH ROW
BEGIN
//伪代码
if exists (select 1 from online_user_tb) then
update online_user_tb;
else
insert online_user_tb
end if;
----------------------------------------------之后不在执行insert语句
END
---------------这样可行吗?
用 instead of insert
MySQL 的触发器无法实现这种功能。
可以按一楼的方法用 INSERT .... ON DUPLICATE KEY UPDATE ...
INSERT INTO table (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE c=c+1;
具体用法和例子可以参考一下官方文档中的说明。
MySQL官方文档 http://dev.mysql.com/doc/refman/5.1/zh/index.html
学习了
看起来不错 mysql不支持?
那只能用版主的方法了
顶一下
使用replace into也可以。
相关问答:
一个行业网站,要实现的功能要求为:
一搜索表单可选搜索 产品/资讯/商家,搜索时希望先搜标题后全文,当前的数据量估计3万多,定位期望在百万级也可用。
数据类型为innodb,当前的方法是对关键词进行 ......
我现在学习MYSQL,问下mysql储存过程如何建立和使用,最好写成$sql="sql语句",$re=mysql_query($sql);谢谢
建议你先自己看一下文档中的例子。
http://dev.mysql.com/doc/refman/5.1/zh/stored-pro ......
我以前安装了一次,后来卸载了,现在再安装的时候,提示错误:Error 1305.Error reading from file C:DOCUME~1\LOCALS~1\Temp\mysql_server.msi.Verify that the file exists and that you can access it.
可是我找 ......
有一条sql语句 select a.name ,b.name from tableA a,tableB b where a.id = b.id and 。。。(其他过滤条件)
其中a.id 为tableA主键 有唯一性索引 数据量才1千多
b.id 为日志表tableB 的外键 ,慢去条件的才 ......
在三十讲遇到这样一个问题就是运行代码时出现错误 Fatal error: Call to undefined method mysql::fetch_array() in D:\WWW\news\index.php on line 12
,我把mysql::fetch_array() 改成mysql::fetch_row() 又出现F ......