求一条sql 如果存在就不插入

蕃薯哥哥 发布于 2013/11/30 12:11
阅读 1K+
收藏 1

有一个t_tag的标签表,用户能够输入标签,如果数据库中存在名字为用户输入的记录,就不插入,也不更新.

我是用mybatis做持久层框架,传过来的标签是个List,需要返回所有插入的记录的id,这个应该怎么写的?

不用先查后插入能实现吗?

mysql数据库

加载中
1
pcxsvl
pcxsvl

//用触发器:要学数据库系统原理

CREATE TRIGGER INS

BEFORE INSERT ON t_tag

NEW AS NEWDATE

FOR EACH ROW

WHEN (NOT EXSISTS(SELECT * FROM t_tag WHERE NEWDATE.S#=t_tag.S# AND NEWDATE.C#=t_tag.C#))

INSERT INTO t_tag SELECT * FROM NEWDATE;

//其中S#,C#为t-tag的主键


0
Timco
Timco
insert into t_tag *** where not exsists***
0
八宝旗
八宝旗

insert ignore into t_tag *** values xxx;

ignore不止是忽略主键冲突引起的错误,唯一索引,列约束,分区设置等都可能会被忽略

0
旋转360
旋转360

引用来自“pcxsvl”的答案

//用触发器:要学数据库系统原理

CREATE TRIGGER INS

BEFORE INSERT ON t_tag

NEW AS NEWDATE

FOR EACH ROW

WHEN (NOT EXSISTS(SELECT * FROM t_tag WHERE NEWDATE.S#=t_tag.S# AND NEWDATE.C#=t_tag.C#))

INSERT INTO t_tag SELECT * FROM NEWDATE;

//其中S#,C#为t-tag的主键


这个技术牛叉啊
返回顶部
顶部