Questions tagged «postgresql»

PostgreSQL是一个开放源代码的,对象关系数据库管理系统(ORDBMS),可用于所有主要平台,包括Linux,UNIX,Windows和OSX。提出问题时,请注明确切的Postgres版本。有关管理或高级功能的问题最好直接到dba.stackexchange.com。


4
使用空列创建唯一约束
我有一个具有这种布局的表: CREATE TABLE Favorites ( FavoriteId uuid NOT NULL PRIMARY KEY, UserId uuid NOT NULL, RecipeId uuid NOT NULL, MenuId uuid ) 我想创建一个类似于以下的唯一约束: ALTER TABLE Favorites ADD CONSTRAINT Favorites_UniqueFavorite UNIQUE(UserId, MenuId, RecipeId); 但是,这将允许多行具有相同的(UserId, RecipeId)if MenuId IS NULL。我想允许NULL在MenuId存储不具有关联菜单中的最爱,但我只希望每个用户/食谱对这些行中最多只有一个。 到目前为止,我的想法是: 使用一些硬编码的UUID(例如全零)而不是null。 但是,MenuId每个用户的菜单都有FK约束,因此我不得不为每个用户创建一个特殊的“空”菜单,这很麻烦。 而是使用触发器检查是否存在空条目。 我认为这很麻烦,我喜欢尽可能避免触发事件。另外,我不信任他们以确保我的数据永远不会处于错误状态。 只需忘记它,然后检查中间件或插入函数中以前是否存在空条目,并且没有此约束。 我正在使用Postgres 9.0。 我有什么方法可以忽略吗?

7
从PostgreSQL的时间戳中提取日期(yyyy / mm / dd)
我只想从PostgreSQL的时间戳中提取日期部分。 我需要它是一个postgresql DATE类型,因此我可以将它插入另一个需要DATE值的表中。 例如,如果我有2011/05/26 09:00:00,我想要2011/05/26 我尝试过投放,但只得到2011年: timestamp:date cast(timestamp as date) 我尝试to_char()了to_date(): SELECT to_date(to_char(timestamp, 'YYYY/MM/DD'), 'YYYY/MM/DD') FROM val3 WHERE id=1; 我试图使其功能: CREATE OR REPLACE FUNCTION testing() RETURNS void AS ' DECLARE i_date DATE; BEGIN SELECT to_date(to_char(val1, "YYYY/MM/DD"),"YYYY/MM/DD") INTO i_date FROM exampTable WHERE id=1; INSERT INTO foo(testd) VALUES (i); END 从PostgreSQL的时间戳中提取日期(yyyy / …


7
相当于PostgreSQL GROUP_CONCAT?
我有一张桌子,我想将每个ID与连接的字段值连接成一行。 例如,在我的表格中,我有这个: TM67 | 4 | 32556 TM67 | 9 | 98200 TM67 | 72 | 22300 TM99 | 2 | 23009 TM99 | 3 | 11200 我想输出: TM67 | 4,9,72 | 32556,98200,22300 TM99 | 2,3 | 23009,11200 在MySQL中,我能够使用聚合函数GROUP_CONCAT,但是在这里似乎不起作用... PostgreSQL是否具有等效功能,或者还有另一种方法可以实现此目的?

21
psql:无法连接到服务器:没有这样的文件或目录(Mac OS X)
重新启动Mac后,出现了可怕的Postgres错误: psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"? 发生这种情况的原因是,由于一个不相关的问题,我的Macbook完全冻结了,我不得不使用电源按钮进行强制重启。重新启动后,由于此错误,我无法启动Postgres。
247 macos  postgresql 

8
如何在不允许null的Postgresql数据库中添加列?
我使用以下查询(已针对Internet进行了清理)将新的“ NOT NULL”列添加到我的Postgresql数据库中: ALTER TABLE mytable ADD COLUMN mycolumn character varying(50) NOT NULL; 每次运行此查询时,都会收到以下错误消息: ERROR: column "mycolumn" contains null values 我很沮丧 我要去哪里错了? 注意:我主要使用pgAdmin III(1.8.4),但是当我在Terminal中运行SQL时收到相同的错误。


8
您需要安装postgresql-server-dev-XY来构建服务器端扩展,或者安装libpq-dev来构建客户端应用程序
我正在使用virtualenv处理Django项目,并将其连接到本地postgres数据库。当我运行项目时说, ImportError: No module named psycopg2.extensions 然后我用这个命令来安装 pip install psycopg2 然后在安装过程中会出现以下错误。 Downloading/unpacking psycopg2==2.4.4 Downloading psycopg2-2.4.4.tar.gz (648kB): 648kB downloaded Running setup.py (path:/home/muhammadtaqi/Projects/MyProjects/OnlineElectionCampaign/venv/build/psycopg2/setup.py) egg_info for package psycopg2 Error: You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application. Complete output from command python setup.py egg_info: …


12
如何在PostgreSQL查询中声明变量
如何声明要在PostgreSQL 8.3查询中使用的变量? 在MS SQL Server中,我可以这样做: DECLARE @myvar INT SET @myvar = 5 SELECT * FROM somewhere WHERE something = @myvar 我如何在PostgreSQL中做同样的事情?根据文档,变量被简单地声明为“名称类型;”,但这给了我一个语法错误: myvar INTEGER; 有人可以给我一个正确语法的例子吗?



17
如何修改新的PostgreSQL JSON数据类型内的字段?
使用postgresql 9.3,我可以选择JSON数据类型的特定字段,但是如何使用UPDATE修改它们呢?我在postgresql文档中或在线上找不到任何示例。我尝试了明显的方法: postgres=# create table test (data json); CREATE TABLE postgres=# insert into test (data) values ('{"a":1,"b":2}'); INSERT 0 1 postgres=# select data->'a' from test where data->>'b' = '2'; ?column? ---------- 1 (1 row) postgres=# update test set data->'a' = to_json(5) where data->>'b' = '2'; ERROR: syntax error at or …

25
使用电子邮件地址作为主键?
与自动递增的数字相比,电子邮件地址是否是主要的候选地址? 我们的Web应用程序需要电子邮件地址在系统中唯一。因此,我想到了使用电子邮件地址作为主键。但是我的同事建议,字符串比较将比整数比较慢。 不使用电子邮件作为主键是正确的理由吗? 我们正在使用PostgreSQL。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.