简单oracle判断后插入数据

有时候用oracle的数据库,插入数据的时候需要判断一下。比如,每天每人只能写一条。
在插入的时候就要先做个判断,查一下是不是当天有此人的操作记录。
就要先

1.select count(*) from xxx

 

一下。
这天查了一下,有种写法可以不用先select
本来是

 代码如下 复制代码

1.insert
2.into form(formid) values(111)

改成

 代码如下 复制代码

1.insert
2.when (not exists (select 1 from form where formid = 111)) then
3.into form(formid) select 111 from dual

这样,当数据库里有一个formid=111的记录的时候,就不会进行insert操作了

时间: 2024-09-24 05:25:54

简单oracle判断后插入数据的相关文章

oracle汉字乱码(插入数据/注释)

PL/SQL注释乱码解决: 查看Oracle的编码: SQL> SELECT USERENV('LANGUAGE') FROM DUAL; USERENV('LANGUAGE') ---------------------------------------------------- AMERICAN_AMERICA.AL32UTF8 但乱码. 安装时候,Oracle编码选择: ***:字符集(T):Unicode(AL32UTF8) 没有NLS_LANG变量的话,添加环境变量(系统变量(S))

急求指导!java连接oracle数据库自主插入数据问题

问题描述 我是想用java连结oracle,在eclipse中执行程序,实现用户自主插入数据.代码如下:packageorg.lxh.execdemo;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.Statement;publicclassInsertDemo{//在classpath中配置的jdbc的jar的包publicstaticfinalStringDBDRIVER="oracle.jdbc.d

oracle取得最后插入的一条数据

问题描述 往数据库里插入blob,要先插空,然后update,但从插入数据不能判断哪条是最后插入的,怎样可以获得最后插入的那条数据?谢谢了...问题补充:现在数据库确定了,我不能随便改,所以不能添加自增长的标识列...但原本数据库里有个VARCHAR类型的,我给它添加了seq,让它每次增1,可以通过这个获得最大的吗??问题补充:To:ham我小菜,刚开始写程序,你说的问题没有想到,现在写东西都只是简单的实现,好多情况都没考虑,呵呵...另外你说的seqRow是我创建的sequence+Row吗?

探索Oracle之数据库升级七 11gR2 to 12c 升级完成后插入PDB

探索Oracle之数据库升级七11gR2 to 12c 升级完成后插入PDB 前言:        从Oracle 12c开始,引入了容器数据库的概念,可以实现数据库插拔操作,如下图:现在我们就来看看如何将11.2.0.4的数据库插入到12c的CDP里面去,让其成为一个PDB 数据库. 一.查看数据库信息: SQL> col BANNER format a80 SQL> set line 300 SQL> select * from v$version; BANNER CON_ID --

.net实现oracle数据库中获取新插入数据的id的方法_实用技巧

在sql sever中实现插入数据的自动增长是很容易的,但是在oracle数据库中实现这一操作不是很容易,同时要想在.net中实现获取新插入数据的id,而且不会出现读错的情况,就更显得困难了,为了解决在oracle数据中插入的数据能够自增id,同时获取新数据的id,并避免因并发操作而出现的id读错的问题. 数据表结构为test(id,name) 首先,解决数据id自增问题 创建一个序列sequence(sequence详解可从网上搜一下,这里不赘述) create sequence SEQ_te

【提问】插入数据后,如何获得编号【在线放分】

问题描述 插入一条数据到SQLSERVER当中数据表中的第一项是自动编号那么我们在插入数据后,如何获得这个生成的自动编号? 解决方案 解决方案二:selecttop1idfromtableorderbyiddesc解决方案三:http://topic.csdn.net/u/20080710/11/d1468a96-a8e4-4b68-a151-cd38541d7c68.html解决方案四:自动编号只增补渐吗?数据条目很多后,编号会出现循环的情况的吗?解决方案五:自动编号只增补渐吗?是的数据条目很

Sql 向数据库中插入数据,怎么判断已经存在

问题描述 向数据库中插入一条数据AIR001前三位手动输入后三位自动生成数据库中已经存在AIR001,AIR002,AIR003再插入AIR时自动变成AIR004 解决方案 解决方案二:请看我的博客,原理是一样滴http://www.cnblogs.com/zhang9418hn/archive/2011/12/05/2274796.html解决方案三:你要是保证它不一样,首先生成这个AIRxxx的时候就要考虑:然后写入时,查询当前AIRxxx是不是已经存在解决方案四://验证用户名是否存在if

mysql从表里读取一条数据后插入同一个表

这个需求很简单,就是从一个表里,读取一条数据,然后将数据修改后插入同一个表. 表(假设两个表结构一样) INSERT INTO 新表   SELECT * FROM 旧表   复制旧表的数据到新表(假设两个表结构不一样) INSERT INTO 新表(字段1,字段2,.......)   SELECT 字段1,字段2,...... FROM 旧表 只用sql语句即可完成 代码如下:  代码如下 复制代码 INSERT INTO your_table (ID, ISO3, TEXT) VALUES

oracle 字符串拆分,序列,插入数据

问题描述 oracle 字符串拆分,序列,插入数据 insert into stud_sname1_417 (id,sname1) select seq_sname1_417,distinct substr(name,1,1) from name; 请问为什么是 missing expression 解决方案 Oracle拆分字符串函数Oracle拆分字符串函数Oracle拆分字符串函数 解决方案二: insert into stud_sname1_417 (id,sname1) SELECT