标签: exists

快速确定ORACLE表中是否存在字段的方法

我正在寻找一个快速的sql语句来确定表中是否存在字段.

实际上我正在使用这句话

Select 1 
   from dual
   where exists (select 1 
                   from all_tab_columns 
                  where table_name = 'MYTABLE' 
                    and column_name = 'MYCOLUMN')
Run Code Online (Sandbox Code Playgroud)

我认为必须有一种最快的方法来确定ORACLE中是否存在列.

UPDATE

我正在优化一个更大的软件系统,它可以多次调用这个查询,我无法修改源代码;(只有我可以修改存储在外部文件中的查询.

表all_tab_columns有超过一百万条记录.

sql oracle exists

7
推荐指数
1
解决办法
3万
查看次数

Sql Server 2005 - 如果不存在则插入

互联网上有很多关于这个常见"问题"的信息.

解决方案如:

IF NOT EXISTS() BEGIN INSERT INTO (...) END
Run Code Online (Sandbox Code Playgroud)

在我看来并不是线程安全的,你可能会同意.

但是你能否确认将exists存入一个select的where子句会解决sql引擎中最高并发性的问题?够了吗?

insert into Table (columns)
select column1, column2, column3
where not exists (select top 1 1 from Table where something)
Run Code Online (Sandbox Code Playgroud)

应该在那里还添加了一些更高的事务级别,还是可以在默认的一个上执行:commit?

这会在未提交的水平下工作吗?

谢谢!

//稍后添加

我可以假设两个sql'都是正确的:

1)设置事务隔离级别可重复读取

   IF NOT EXISTS() BEGIN INSERT INTO (...) END
Run Code Online (Sandbox Code Playgroud)

2)设置事务隔离级别可重复读取

insert into Table (columns)
select column1, column2, column3
where not exists (select top 1 1 from Table where something)
Run Code Online (Sandbox Code Playgroud)

sql-server transactions insert exists

7
推荐指数
1
解决办法
4835
查看次数

VBScript字典存在方法始终返回True

我究竟做错了什么?从我的测试中,objDic.exists永远不会给出错误!

    dim objDic

    set objDic = createobject("scripting.dictionary")

    objDic.add "test","I have not been deleted"

    wscript.echo objDic.item("test") 'Displays -- I have not been deleted

    objDic.remove "test"

    wscript.echo """" & objDic.item("test") & """" 'Displays -- ""

    if objDic.exists("test") then wscript.echo """" & objDic.item("test") & """" 'Displays -- ""
Run Code Online (Sandbox Code Playgroud)

vbscript dictionary exists

7
推荐指数
1
解决办法
3万
查看次数

使用Linq做List.Exist

我想检查列表中的任何项是否设置了字段 true

目前我这样做:

bool isPaid = visit.Referrals.Exists(delegate(AReferral r)
                                     {
                                         return r.IsPaidVisit;
                                     });
Run Code Online (Sandbox Code Playgroud)

我怎么能这样做Linq对某些人来说可能是微不足道的,但如果现在就无法想象.

c# linq list exists

7
推荐指数
1
解决办法
278
查看次数

列表<T>中的包含和存在之间有什么不同?

我想知道之间有什么不同ContainsExistsList<T>

他们都可以确定元素是否在List<T>.

但他们之间有什么不同?

// Create a list of parts.
List<Part> parts = new List<Part>();

// Add parts to the list.
parts.Add(new Part() { PartName = "crank arm", PartId = 1234 });
parts.Add(new Part() { PartName = "chain ring", PartId = 1334 });
parts.Add(new Part() { PartName = "regular seat", PartId = 1434 });
parts.Add(new Part() { PartName = "banana seat", PartId = 1444 });
parts.Add(new Part() { PartName = "cassette", PartId = …
Run Code Online (Sandbox Code Playgroud)

c# contains list exists

7
推荐指数
3
解决办法
1万
查看次数

jQuery元素存在事件

一旦页面上存在特定元素,是否存在用于调用回调的事件或简单函数.我不是问如何检查元素是否存在.

举个例子

$("#item").exists(function(){ });
Run Code Online (Sandbox Code Playgroud)

我最终使用了ready事件

 $("#item").ready(function(){ });
Run Code Online (Sandbox Code Playgroud)

jquery events exists

6
推荐指数
1
解决办法
4020
查看次数

IF EXISTS UPDATE ELSE INSERT语法错误

我在我的ISP上使用MySQL 5.1.这是我的查询

mysql_query("
IF EXISTS(SELECT * FROM licensing_active WHERE title_1='$title_1') THEN
    BEGIN
        UPDATE licensing_active SET time='$time' WHERE title_1='$title_1')
    END ELSE BEGIN
        INSERT INTO licensing_active(title_1) VALUES('$title_1')
    END   
") or die(mysql_error());  
Run Code Online (Sandbox Code Playgroud)

错误是

... check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF EXISTS(SELECT * FROM licensing_active WHERE title_1='Title1') THEN ' at line 1
Run Code Online (Sandbox Code Playgroud)

我的实际任务涉及到

WHERE title_1='$title_1' AND title_2='$title_2' AND version='$version' ...ETC...
Run Code Online (Sandbox Code Playgroud)

但是我已经减少了它以使我的问题解决更简单

在我对此的搜索中,我一直看到"ON DUPLICATE KEY UPDATE"的引用,但不知道如何处理它.

php mysql insert exists

6
推荐指数
2
解决办法
3万
查看次数

检查Java中是否存在文件或目录

来自oracle的这个 java教程:

请注意!Files.exists(path)不等同于Files.notExists(path).

他们为什么不等同?它在解释方面没有进一步说明.有人知道更多相关信息吗?提前致谢!

java file exists

6
推荐指数
1
解决办法
2万
查看次数

MySQL如何仅从列中选择(如果该列存在)

我需要能够检查一列是否存在,如果存在,那么我想从中进行选择。

我正在尝试许多不同的版本,但是我什至不确定是否可行。

这是我最近的尝试:

SELECT
IF (EXISTS (SELECT `Period` AS `Period` FROM myview), `PERIOD`,
IF (EXISTS (SELECT `Country` AS `COUNTRY` FROM myview),`COUNTRY` FROM myview ;
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?


编辑


我在这里看到了另一个问题:MySQL,使用SQL检查表中是否存在一列

但是我仍然对if语句感到困惑。我可以使用上面问题中的答案来检查该列是否存在。但是我的问题是-如果发现结果为真,如何从该列执行select语句。


编辑2


下面的答案表明我应该使用BEGIN和END语句,这很有意义。但是,我的查询在第一行抱怨。它说“意外的IF”-有人可以确认这是否是正确的MYSQL语法吗?

if( exists (SELECT * 
    FROM information_schema.COLUMNS 
    WHERE TABLE_SCHEMA = 'db_name' 
    AND TABLE_NAME = 'view_name' 
    AND COLUMN_NAME = 'column_name') )
begin
    SELECT `column_name` FROM `view_name`
end
Run Code Online (Sandbox Code Playgroud)

提前致谢。

mysql select if-statement exists

6
推荐指数
1
解决办法
3万
查看次数

IF行存在然后在mysql中删除行

我有这样的查询:

IF EXISTS(SELECT 1 FROM table1 WHERE col1 = ? LIMIT 1) THEN
DELETE FROM table2 WHERE col2 = ?
END IF
Run Code Online (Sandbox Code Playgroud)

但我不知道为什么上面的查询不起作用.这也不起作用:

IF  EXISTS(SELECT 1 FROM table1 WHERE col1 = ? LIMIT 1) BEGIN
DELETE FROM table2 WHERE col2 = ?
END
Run Code Online (Sandbox Code Playgroud)

MySQL告诉我有一个语法错误,我该如何解决?

mysql if-statement exists

6
推荐指数
1
解决办法
1万
查看次数