SQL 当记录不存在时插入insert if not exists 20
INSERTINTOclients(id,name,type)SELECT10345,'IBM','advertising'FROMclientsWHEREnotexis...
INSERT INTO clients
(id, name, type)
SELECT 10345, 'IBM', 'advertising'
FROM clients
WHERE not exists (select * from clients
where id = 10345);
表是空的 语句执行成功 但是没添加进数据
在表了随便添加条数据 然后在执行 却可以添加进数据了呢?
要怎么修改?
上面打错个字
表是空的 语句执行成功 但是没添加进数据
在表里随便添加条数据 然后在执行 却可以添加进数据了呢?
要怎么修改? 展开
(id, name, type)
SELECT 10345, 'IBM', 'advertising'
FROM clients
WHERE not exists (select * from clients
where id = 10345);
表是空的 语句执行成功 但是没添加进数据
在表了随便添加条数据 然后在执行 却可以添加进数据了呢?
要怎么修改?
上面打错个字
表是空的 语句执行成功 但是没添加进数据
在表里随便添加条数据 然后在执行 却可以添加进数据了呢?
要怎么修改? 展开
6个回答
展开全部
表是空的当然添加不了数据,因为exists存在谓词返回的是布尔值TRUE和FALSE,你的select * from clientswhere id = 10345 是空值;那么WHERE not exists (select * from clientswhere id = 10345)的意思是限定条件 WHERE 不存在空值,但是事实上表里此时正是空,所以查询不符合WHERE条件,所以insert 也是空,就没记录了。
还有,你的语句
INSERT INTO clients(id, name, type)SELECT 10345, 'IBM', 'advertising'…
select 后面跟的不是字段名,而是值,为什么还要用INSERT INTO…SELECT ?
直接insert into…values(…)不就好了?
还有,你的语句
INSERT INTO clients(id, name, type)SELECT 10345, 'IBM', 'advertising'…
select 后面跟的不是字段名,而是值,为什么还要用INSERT INTO…SELECT ?
直接insert into…values(…)不就好了?
展开全部
sql导出建表语句的sql文件你看过吗?前面就是判断表是否存在,然后建表
就是那些if not exists 之类的,你照着改一下就行了,手头没有sql,没办法给你贴语句
就是那些if not exists 之类的,你照着改一下就行了,手头没有sql,没办法给你贴语句
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
INSERT INTO clients
SELECT 10345, 'IBM', 'advertising'
FROM dual
WHERE not exists (select * from clients
where id = 10345);
这个可以实现
SELECT 10345, 'IBM', 'advertising'
FROM dual
WHERE not exists (select * from clients
where id = 10345);
这个可以实现
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为表中没有数据,
insert into clients
select ...
FROM clients
当然没有数据返回,insert自然也就没有数据可以插入了。
这个好像必须用程度段,纯粹的sql语句还真实现不了
insert into clients
select ...
FROM clients
当然没有数据返回,insert自然也就没有数据可以插入了。
这个好像必须用程度段,纯粹的sql语句还真实现不了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
WHERE not exists (select * from clients
where id = 10345); 我觉得where not exists这有问题吧?exists是个栏位?后面怎么是select * from 呢?应该是指定一个栏位,WHERE not exists (select exists from clients where id = 10345)
where id = 10345); 我觉得where not exists这有问题吧?exists是个栏位?后面怎么是select * from 呢?应该是指定一个栏位,WHERE not exists (select exists from clients where id = 10345)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询