关于Mysql查询插入
我有1个表是member表,其中有部门(intDepartmentID),姓名(strName),id(自增长),年龄等几个字段。
比如我现在想插入一个记录到数据库中,要求是部门相同的情况下,姓名不允许相同;部门不同的时候,姓名可以相同。
example
部门是:开发部id是5
姓名是:张山
那我先 select id from member where intDepartmentID=5 and strName!='张山'。如果有记录,那么表示姓名重复,插入失败。没有记录,那么要执行 insert into member (intDepartmentID,strName) values (5,'张山')
我现在的问题是上面要执行2条语句,先select,然后insert,
我想用一个语句来执行,就是判断条件是否存在,如果存在,那么插入失败,不存在那么执行insert语句 。
麻烦高手告诉我。
问题点数:20、回复次数:5Top
1 楼xiaoguanguan(一只飞得慢的笨鸟)回复于 2005-01-08 08:11:27 得分 0
在数据库里把部门id和姓名两个字段设为联系主键。直接执行插入就可以了。如果部门和姓名同时相同的时候,数据库会自动返回错误信息。否则,即可成功插入。Top
2 楼hongyanyufei(鸿雁于飞)回复于 2005-01-08 12:28:25 得分 0
楼上的朋友说的是。
alter table member with nocheck add
constraint [pk_member] primary key clustered
(
[id],
[strName]
) on [primary]Top
3 楼stWalking(【space & time walking】【时空漫步】追逐流逝的岁月)回复于 2005-01-08 15:10:54 得分 0
insert into member (intDepartmentID,strName) values (5,'张山')
where (select count(*) from member where intDepartmentID=5 and strName!='张山')=0Top
4 楼njjxd(njjxd)回复于 2005-01-10 12:08:36 得分 0
stWalking 说的
insert into member (intDepartmentID,strName) values (5,'张山')
where (select count(*) from member where intDepartmentID=5 and strName!='张山')=0 不行
hongyanyufei:说的,是在sqlserver中的语句,我的数据库是mysqlTop
5 楼mathematician(数学家)回复于 2005-01-10 15:06:35 得分 20
主键:
alter table member add primary key(intDepartmentID,strName);
唯一限制索引:
alter table member add unique emp_name2(intDepartmentID,strName);Top





