我有一个表格,其中包含一个字符变化(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) 我的代码是特定应用程序的插件,使用Visual Studio 8用C++编写.它使用来自外部提供程序的两个DLL.不幸的是,我的插件无法启动,因为找不到DLL(我把它们放在与插件本身相同的目录中).
当我手动将DLL移动或复制到主机应用程序目录时,插件加载正常.对于最终用户来说,这种移动被认为是不可接受的麻烦,我正在寻找一种方法让我的插件透明地加载它的DLL.我能做什么?
相关细节:
这个插件是该插件的Macintosh版本的端口.在Mac上没有问题,因为每个二进制文件都包含自己的动态库搜索路径,我设置为我需要的插件二进制文件.要在Mac上设置它只需要在Xcode IDE中进行项目设置.这就是为什么我希望在Visual Studio中有类似的东西,但我找不到任何相关的东西.此外,Visual Studio的帮助不过是,谷歌也没有.
一个可能的解决方法是我的代码明确地告诉Windows在哪里找到DLL,但我不知道如何,并且无论如何,因为我的代码甚至没有启动,所以它没有机会这样做.
作为一名Mac开发人员,我意识到我可能会要求一些非常基础的东西.如果是这样的话,我道歉,但我已经没有头发了.
我已经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)
运行%或<->操作员需要什么?
我想为 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 …
我有一个包含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)
列c并d在日后添加,初始表创建后.我的问题是:当模式名称被排除在选择查询之外时,为什么数据库会忽略后面的列?
postgresql database-permissions database-schema search-path postgresql-9.2
在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编译器|定位所有配置-所有平台|搜索路径
在此指定变量:
项目经理|项目|选项|调试器|目标:所有配置-所有平台|环境块|用户覆盖
我想要dlopen()特定目录中的每个共享库.为了做到这一点,
检索linux库搜索路径的最简洁方法是什么.或者是否有更快的方法在该路径中查找特定目录?
posix会更好.
今晚我们遇到了一个恼人的问题,只能在Xcode的命令行构建中出现,而不是来自Xcode的GUI.
当从具有Xcode GUI的机器构建时,使用$ PROJROOT的递归用户头搜索路径,没有双引号,我们没有遇到任何问题.但是,当使用使用Xcode命令行构建功能的Jenkins进行构建时,会抛出Headers不可用的错误.
经过一个小时的探索,有人决定尝试用双引号包装反复的$ PROJROOT("$ PROJROOT").一旦发生这种情况,Jenkins命令行的建设终于成功了.
所以我们并不完全理解用引号包装搜索路径或省略引号的后果.
任何人都可以了解究竟是什么导致了这个问题?什么双引号从命令行对GUI表示编译器?
在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添加到它的搜索路径?
当在数据库连接URL中指定参数时,我的SQL命令在从public架构(位于默认DB中search_path)中查找对象时遇到问题currentSchema。
如何解决?
长话说:
app1。public架构中安装了Postgis扩展(我们希望将其保留在该位置)。数据库search_path的配置如下:
ALTER DATABASE tst SET search_path = "$user", public
Run Code Online (Sandbox Code Playgroud)当连接数据库而未在URL中指定当前架构时,默认架构是公共的,因此它将查找所有地理功能和对象。但是app1当从中寻址对象时app1,我必须指定架构前缀,例如:
select st_asgeojson(geometry,15,4) from app1.shapes limit 5
Run Code Online (Sandbox Code Playgroud)这不方便。因此,我将“ app1”作为当前模式参数添加到了连接URL,如下所示:
jdbc:postgresql://localhost:5432/tst?currentSchema=app1
Run Code Online (Sandbox Code Playgroud)现在,当我连接到数据库时,从app1模式访问对象时不必指定app1前缀。但是,涉及Postgis对象的请求不再起作用,并且失败:
错误:函数st_asgeojson(public.geometry,integer)不存在
我的理解是,它应该在中搜索对象search_path并在public架构中找到它们,但是由于某种原因它不会发生。我也尝试过在用户级别指定搜索路径,但仍然无法正常工作。
我的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中找到它为止.)
search-path ×11
postgresql ×5
linux ×2
bash ×1
c ×1
constraints ×1
delphi ×1
delphi-xe2 ×1
dll ×1
dynamic-sql ×1
foreign-keys ×1
inheritance ×1
ios ×1
jdbc ×1
jenkins ×1
nltk ×1
options ×1
path ×1
plpgsql ×1
plugins ×1
python ×1
sql ×1
winapi ×1
xcode ×1