标签: search-path

错误:"表中没有键..."

我有一个表格,其中包含一个字符变化(12)字段,这是它的PRIMARY KEY.我跑了这个查询

SELECT * FROM bg WHERE bg_id ='470370111002'
Run Code Online (Sandbox Code Playgroud)

它从表中选择一行.一切看起来都不错 然后我试试.

INSERT INTO csapp_center_bgs(bg_id,center_id) VALUES('470370111002',2)
Run Code Online (Sandbox Code Playgroud)

bg_id上有一个外键,看起来像......

ALTER TABLE csapp_center_bgs
ADD CONSTRAINT csapp_center_bgs_bg_id_65c818f360c84dc5_fk_bg_bg_id
FOREIGN KEY (bg_id)
REFERENCES tiger.bg (bg_id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION DEFERRABLE INITIALLY DEFERRED;
Run Code Online (Sandbox Code Playgroud)

这是精确的错误......

    ERROR:  insert or update on table "csapp_center_bgs" violates foreign key constraint "csapp_center_bgs_bg_id_65c818f360c84dc5_fk_bg_bg_id"
DETAIL:  Key (bg_id)=(470370111002) is not present in table "bg".
********** Error **********

ERROR: insert or update on table "csapp_center_bgs" violates foreign key constraint "csapp_center_bgs_bg_id_65c818f360c84dc5_fk_bg_bg_id"
SQL state: …
Run Code Online (Sandbox Code Playgroud)

postgresql inheritance constraints foreign-keys search-path

5
推荐指数
1
解决办法
8819
查看次数

如何将Win32 App插件加载到自己的目录中

我的代码是特定应用程序的插件,使用Visual Studio 8用C++编写.它使用来自外部提供程序的两个DLL.不幸的是,我的插件无法启动,因为找不到DLL(我把它们放在与插件本身相同的目录中).

当我手动将DLL移动或复制到主机应用程序目录时,插件加载正常.对于最终用户来说,这种移动被认为是不可接受的麻烦,我正在寻找一种方法让我的插件透明地加载它的DLL.我能做什么?

相关细节:

  • 主机应用程序插件位于主机应用程序强制要求的目录中.该目录不在DLL搜索路径中,我不控制它.
  • 插件本身打包为插件目录的子目录,包含插件代码本身,以及与插件相关的任何资源(例如图像,配置文件......).我控制该子目录中的内容,称为"捆绑",但不是它所在的位置.
  • 该应用程序的常见插件安装习惯用于最终用户将插件包复制到插件目录.

这个插件是该插件的Macintosh版本的端口.在Mac上没有问题,因为每个二进制文件都包含自己的动态库搜索路径,我设置为我需要的插件二进制文件.要在Mac上设置它只需要在Xcode IDE中进行项目设置.这就是为什么我希望在Visual Studio中有类似的东西,但我找不到任何相关的东西.此外,Visual Studio的帮助不过是,谷歌也没有.

一个可能的解决方法是我的代码明确地告诉Windows在哪里找到DLL,但我不知道如何,并且无论如何,因为我的代码甚至没有启动,所以它没有机会这样做.

作为一名Mac开发人员,我意识到我可能会要求一些非常基础的东西.如果是这样的话,我道歉,但我已经没有头发了.

dll winapi plugins search-path

4
推荐指数
1
解决办法
2143
查看次数

如何使用扩展名pg_trgm中的%运算符?

我已经pg_trgm安装了模块。

pg_trgm | 1.0     | extensions | text similarity measurement and index ...
Run Code Online (Sandbox Code Playgroud)

模式集为extensions。要使用它,我必须运行以下选择:

extensions.similarity('hello','hallo');
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用%运算符运行一条语句,并收到以下消息。

mydb=# select * from rssdata where description % 'Brazil';
ERROR:  operator does not exist: character varying % unknown
LINE 1: select * from rssdata where description % 'Brazil';
                                            ^
HINT:  No operator matches the given name and argument type(s).
You might need to add explicit type casts. 
Run Code Online (Sandbox Code Playgroud)

运行%<->操作员需要什么?

sql postgresql pattern-matching search-path

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

强制 PostgreSQL 在函数中使用不同的模式

我想为 PG SQL 数据库中的模式创建一个更新函数。下面是一个测试功能。它不起作用,因为它永远不应该发出通知,但在运行时会这样做test_schema_update('second')

CREATE OR REPLACE FUNCTION test_schema_update(my_schema_name VARCHAR(200)) 
RETURNS void AS
$__marker__$
DECLARE
    actualValue varchar(1000);
    testValue varchar(1000);
BEGIN
    EXECUTE 'SET search_path TO ' || quote_ident(my_schema_name);

    testValue := (SELECT max(value) FROM setting WHERE settingkey = 'libraryname');
    EXECUTE ('SELECT max(value) FROM setting WHERE settingkey = ''libraryname''')
        INTO actualValue;

    IF (actualValue != testValue)
    THEN
        RAISE NOTICE '% != %', actualValue, testValue;
        RAISE INFO 'Schema was: %', current_schema();
    END IF;

    RESET search_path;
END;
$__marker__$ LANGUAGE plpgsql;

test_schema_update('first');
test_schema_update('second');
Run Code Online (Sandbox Code Playgroud)

问题是 PG …

postgresql dynamic-sql plpgsql search-path

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

为什么PostgreSQL SELECT查询在指定模式名称时会返回不同的结果?

我有一个包含4列的PostgreSQL数据库表 - 标记为column_a,column_b等.我想用简单的select查询查询此表:

select * from table_name;
Run Code Online (Sandbox Code Playgroud)

我得到了一些看起来像的结果:

column_a | column_b
---------+---------
'a value'|'b_value'
Run Code Online (Sandbox Code Playgroud)

但是当我使用这个查询时:

select * from schema_name.table_name;
Run Code Online (Sandbox Code Playgroud)

我得到了完整的结果:

column_a | column_b | column_c | column_d
---------+----------+----------+---------
'a value'|'b value' |'c value' |'d_value' 
Run Code Online (Sandbox Code Playgroud)

cd在日后添加,初始表创建后.我的问题是:当模式名称被排除在选择查询之外时,为什么数据库会忽略后面的列?

postgresql database-permissions database-schema search-path postgresql-9.2

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

如何在Delphi搜索路径中使用系统变量?

在Delphi XE2中,我正在设置搜索路径。我想使用我定义的系统变量来缩短搜索路径中使用的各个文件夹的字符串。

我这样做是这样的:

Search path         : x:\Delphi Library\XTools;x:\Delphi Library\XDiag;
I define variable   : L = x:\Delphi Library
Search path using L : $(L)\XTools;$(L)\XDiag;
Run Code Online (Sandbox Code Playgroud)

如果我不使用定义的环境变量,即完全写出路径,那么一切都很好,但是如果我确实使用环境变量,则编译器将无法理解搜索路径。

我一直在使用Delphi 3,它比XE2简单得多,所以也许我没有在正确的位置指定路径或变量:

路径在这里指定:

项目经理|项目|选项| Delphi编译器|定位所有配置-所有平台|搜索路径

在此指定变量:

项目经理|项目|选项|调试器|目标:所有配置-所有平台|环境块|用户覆盖

delphi options search-path delphi-xe2

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

在共享库搜索路径中查找目录

我想要dlopen()特定目录中的每个共享库.为了做到这一点,
检索linux库搜索路径的最简洁方法是什么.或者是否有更快的方法在该路径中查找特定目录?
posix会更好.

c linux search-path

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

双引号在Xcode的搜索路径中表示什么?

今晚我们遇到了一个恼人的问题,只能在Xcode的命令行构建中出现,而不是来自Xcode的GUI.

当从具有Xcode GUI的机器构建时,使用$ PROJROOT的递归用户头搜索路径,没有双引号,我们没有遇到任何问题.但是,当使用使用Xcode命令行构建功能的Jenkins进行构建时,会抛出Headers不可用的错误.

经过一个小时的探索,有人决定尝试用双引号包装反复的$ PROJROOT("$ PROJROOT").一旦发生这种情况,Jenkins命令行的建设终于成功了.

所以我们并不完全理解用引号包装搜索路径或省略引号的后果.

任何人都可以了解究竟是什么导致了这个问题?什么双引号从命令行对GUI表示编译器?

xcode search-path ios jenkins

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

nltk不会将$ NLTK_DATA添加到搜索路径中?

在linux下,我设置了env var $ NLTK_DATA('/ home/user/data/nltk'),并按预期吹出测试工作

>>> from nltk.corpus import brown
>>> brown.words()
['The', 'Fulton', 'County', 'Grand', 'Jury', 'said', ...]
Run Code Online (Sandbox Code Playgroud)

但是当运行另一个python脚本时,我得到了:

LookupError: 
**********************************************************************
Resource u'tokenizers/punkt/english.pickle' not found.  Please
use the NLTK Downloader to obtain the resource:  >>>
nltk.download()
Searched in:
- '/home/user/nltk_data'
- '/usr/share/nltk_data'
- '/usr/local/share/nltk_data'
- '/usr/lib/nltk_data'
- '/usr/local/lib/nltk_data'
- u''
Run Code Online (Sandbox Code Playgroud)

我们可以看到,在手动附加NLTK_DATA目录后,nltk不会向搜索路径添加$ NLTK_DATA:

nltk.data.path.append("/NLTK_DATA_DIR");
Run Code Online (Sandbox Code Playgroud)

脚本按预期运行,问题是:

如何让nltk自动将$ NLTK_DATA添加到它的搜索路径?

python environment-variables nltk search-path

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

URL中的currentSchema与search_path不能正常工作

当在数据库连接URL中指定参数时,我的SQL命令在从public架构(位于默认DB中search_path)中查找对象时遇到问题currentSchema

如何解决?

长话说:

  1. 我有一个应用程序架构app1
  2. 数据库在public架构中安装了Postgis扩展(我们希望将其保留在该位置)。
  3. 数据库search_path的配置如下:

    ALTER DATABASE tst SET search_path = "$user", public
    
    Run Code Online (Sandbox Code Playgroud)
  4. 当连接数据库而未在URL中指定当前架构时,默认架构是公共的,因此它将查找所有地理功能和对象。但是app1当从中寻址对象时app1,我必须指定架构前缀,例如:

    select st_asgeojson(geometry,15,4) from app1.shapes limit 5
    
    Run Code Online (Sandbox Code Playgroud)
  5. 这不方便。因此,我将“ app1”作为当前模式参数添加到了连接URL,如下所示:

    jdbc:postgresql://localhost:5432/tst?currentSchema=app1
    
    Run Code Online (Sandbox Code Playgroud)
  6. 现在,当我连接到数据库时,从app1模式访问对象时不必指定app1前缀。但是,涉及Postgis对象的请求不再起作用,并且失败:

    错误:函数st_asgeojson(public.geometry,integer)不存在

我的理解是,它应该在中搜索对象search_path并在public架构中找到它们,但是由于某种原因它不会发生。我也尝试过在用户级别指定搜索路径,但仍然无法正常工作。

postgresql jdbc search-path

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

如何阻止Linux中止PATH搜索?

我的PATH中有/ usr/bin,后来在PATH中有点(表示当前目录).我在两个目录中有一个程序'abcxyz',/ var和/ someother.如果我在/ var中使用mate-terminal并键入一些荒谬的名字,dgxuznk,那么bash会说:"bash:dgxuznk:command not found"如你所料.如果我现在在/ usr/bin中创建一个名为dgxuznk的链接指向/ someother中的程序,它也会运行程序,也就像你期望的那样.但是,如果我现在删除该链接,它不再说"命令未找到",而是"bash:/ usr/bin/dgxuznk:没有这样的文件或目录".就好像它记得它之前发现它的位置,并期望再次在/ usr/bin下找到它.

更糟糕的是,如果我现在将/ var(我在哪里)中的程序重命名为dgxuznk,并键入"dgxuznk",它仍然会抱怨"bash:/ usr/bin/dgxuznk:没有这样的文件或目录"就像它可以'通过PATH中的/ usr/bin查看点并查看当前目录以查找程序.

这只是在Fedora 19中吗?如何编程以通过搜索路径中的/ usr/bin并找到当前目录点?

(提示:如果要重现此错误 - 请不要让它在当前目录中找到该程序,直到它在/ usr/bin中找到它为止.)

linux bash path search-path

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