第二问,我下面语句的本意是从A和B中查找出name为X的记录数,如果X的记录数不为0,说明X不可用,但实际的效果好像不对,各位帮我看看,谢谢!
select count(*) from A,B where A.name = X or B.name = X;
...全文
1259打赏收藏
如何在两张表中实现不重名插入?
有两表:A、B,都有字段id,name分别为PRIMARY KEY和UNIQUE KEY,现在我的需求是,向A或B中添加纪录,要求和另外一表中的id和name也要不重复,该怎么做比较好? 第二问,我下面语句的本意是从A和B中查找出name为X的记录数,如果X的记录数不为0,说明X不可用,但实际的效果好像不对,各位帮我看看,谢谢! select count(*) from A,B where A.name = X or B.name = X;
你需要在 before insert / before update 中做检查
http://blog.csdn.net/acmain_chm/article/details/4380183
MySQL 中如何在触发器里中断记录的插入或更新?
MySQL 不象其它有些数据库可以在触发器中抛出异常来中断当然触发器的执行以阻止相应的SQL语句的执行。在MySQL的目录版本中还无法直接抛出异常。这样我们如何实现呢? 下面是一种实现的方法。思路就是想办法在触发器中利用一个出错的语句来中断代码的执行。 mysql> create table t_control(id int primary key);Query OK, 0 row...
create trigger tr_reInsert on A
INSTEAD OF insert
as
declare @sno varchar(10)
begin
select @sno = name from inserted
if exists(select id from Bwhere type=@sno)
begin
PRINT('already exist in table B')
rollback Tran
end
else
begin
insert into A(name) values(@sno)
end
end