DELETE tb_sensitive_cust,tb_sensitive_audit FROM tb_sensitive_cust,tb_sensitive_audit where tb_sensitive_cust.sencustid=? AND tb_sensitive_audit.sencustid=?
我现在的问题是这样的 如果tb_sensitive_audit.sencustid 里面没有匹配的值 会导致tb_sensitive_cust 对应的匹配的那一条记录也不能够被删除
请问怎么处理 我想只要一条数据就删掉 两个表的数据 无论tb_sensitive_audit 这张表有没有匹配的数据那位大侠告诉我?
我现在的问题是这样的 如果tb_sensitive_audit.sencustid 里面没有匹配的值 会导致tb_sensitive_cust 对应的匹配的那一条记录也不能够被删除
请问怎么处理 我想只要一条数据就删掉 两个表的数据 无论tb_sensitive_audit 这张表有没有匹配的数据那位大侠告诉我?
建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
1. 你的 create table xxx .. 语句
2. 你的 insert into xxx ... 语句
3. 结果是什么样,(并给以简单的算法描述)
4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。
/* Table: tb_sensitive_cust */
/*==============================================================*/
create table tb_sensitive_cust
(
sencustid char(20) not null,
sencustname char(20),
sencustno char(11),
sencust_ID char(20),
auditstate varchar(20) comment '0:通过
1:不通过',
sessionid varchar(20),
optsn varchar(20),
optuserid varchar(20),
optdate datetime,
re varchar(512),
primary key (sencustid)
);
drop table if exists tb_sensitive_audit;/*==============================================================*/
/* Table: tb_sensitive_audit */
/*==============================================================*/
create table tb_sensitive_audit
(
sencustid char(20) not null,
audit char(20),
auditresult varchar(20),
auditorg char(20),
auditer varchar(20),
audittime varchar(20),
sessionid varchar(20),
optsn varchar(20),
optuserid varchar(20),
optdate datetime,
re varchar(512)
);
mysql 5.0String sql="DELETE tb_sensitive_cust,tb_sensitive_audit FROM tb_sensitive_cust,tb_sensitive_audit where tb_sensitive_cust.sencustid=? AND tb_sensitive_audit.sencustid=?";
String sencustid=sensitive.getSencustid();
getSimpleJdbcTemplate().update(sql.toString(),sencustid,sencustid);这个是后台的代码 这条sql语句如果在第二个表没有匹配数据的时候是不会报错的 正常执行 但是实际数据是删不掉的 所以想问是不是要拆开成两条来写?