Questions tagged «postgresql»

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

10
适用于Web应用程序的MySQL与PostgreSQL [关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我正在使用Python(Django)开发Web应用程序,并且想知道在进行生产部署时,MySQL还是PostgreSQL更合适。 乔尔(Joel)在一个播客中说,他在使用MySQL时遇到了一些问题,并且数据不一致。 我想知道有人是否有这样的问题。此外,在性能方面可以轻松调整的内容吗?
122 mysql  postgresql 

8
将类型转换字符串转换为整数-Postgres
我正在从在Varchar中具有原始提要的表中导入数据,我需要将varchar中的列导入到字符串列中。我尝试使用<column_name>::integer和,to_number(<column_name>,'9999999')但是却遇到了错误,因为有一些空字段,我需要将它们作为空或null检索到新表中。 请让我知道是否有相同的功能。

1
PostgreSQL外键语法
我有2个表格,您将在下面的posgresql代码中看到。第一个表格的student有两列,一列为student_name,另一列为student_id,这是主键。在我称为测试的第二张表中,该表有4列,一列用于subject_id,一列用于subject_name,然后一列用于在该学科中具有最高分数的学生,该分数最高。我正在尝试使highestStudent_id引用我的students表中的student_id。这是我下面的代码,不确定语法是否正确: CREATE TABLE students ( student_id SERIAL PRIMARY KEY, player_name TEXT); CREATE TABLE tests ( subject_id SERIAL, subject_name, highestStudent_id SERIAL REFERENCES students); 语法highestStudent_id SERIAL REFERENCES students正确吗?因为我看过另一个像highestStudent_id REFERENCES students(student_id)) 请问在postgresql中创建外键的正确方法是什么?


10
创建PostgreSQL ROLE(用户)(如果不存在)
如何编写SQL脚本在PostgreSQL 9.1中创建ROLE,但是如果已经存在则不引发错误? 当前脚本仅具有: CREATE ROLE my_user LOGIN PASSWORD 'my_password'; 如果用户已经存在,则失败。我想要类似的东西: IF NOT EXISTS (SELECT * FROM pg_user WHERE username = 'my_user') BEGIN CREATE ROLE my_user LOGIN PASSWORD 'my_password'; END; ...但是那行不通- IF普通的SQL似乎不支持该功能。 我有一个批处理文件,该文件创建了PostgreSQL 9.1数据库,角色和其他一些东西。它调用psql.exe,并传入要运行的SQL脚本的名称。到目前为止,所有这些脚本都是纯SQL,如果可能的话,我想避免使用PL / pgSQL。

5
Django-DB-Migrations:无法更改表,因为它具有未决的触发事件
我想从TextField中删除null = True: - footer=models.TextField(null=True, blank=True) + footer=models.TextField(blank=True, default='') 我创建了一个架构迁移: manage.py schemamigration fooapp --auto 由于某些页脚列包含,NULL因此error在运行迁移时会得到以下信息: django.db.utils.IntegrityError:“页脚”列包含空值 我将其添加到架构迁移中: for sender in orm['fooapp.EmailSender'].objects.filter(footer=None): sender.footer='' sender.save() 现在我得到: django.db.utils.DatabaseError: cannot ALTER TABLE "fooapp_emailsender" because it has pending trigger events 怎么了?


3
SCHEMA上有什么免费使用的功能?
我正在尝试首次创建Postgres数据库,因此这可能是一个愚蠢的问题。我为db角色分配了基本的只读权限,该角色必须从我的php脚本访问数据库,并且我有一个好奇心:如果执行 GRANT some_or_all_privileges ON ALL TABLES IN SCHEMA schema TO role; 有没有必要执行 GRANT USAGE ON SCHEMA schema TO role; ? 从文档: 用法:对于模式,允许访问指定模式中包含的对象(假设还满足对象自己的特权要求)。本质上,这允许被授予者在架构内“查找”对象。 我认为,如果我可以选择或操作架构中包含的任何数据,则可以访问架构本身的任何对象。我错了吗?如果没有,它的作用是什么GRANT USAGE ON SCHEMA?该文档对“假设还满足对象自己的特权要求”到底意味着什么?

5
Django与PostgreSQL的连接:“对等身份验证失败”
OperationalError at /admin/ FATAL: Peer authentication failed for user "myuser" 这是我尝试进入Django管理站点时收到的错误。我一直在用MySQL数据库没问题。我是PostgreSQL的新手,但由于我最终打算用于该项目的主机没有MySQL,因此决定切换。 因此,我认为我可以完成安装PostgreSQL的过程,运行a syncdb并设置好。 问题是我似乎无法使我的应用程序连接到数据库。我可以通过下载的命令行或桌面应用程序登录PostgreSQL。只是不在脚本中。 另外,我可以使用它manage.py shell来访问数据库。 有什么想法吗?
120 django  postgresql 

3
Postgres:不同但仅一栏
我在pgsql上有一张表,上面有名字(有1个以上mio行),但是我也有很多重复项。我选择3个字段:id,name,metadata。 我想用ORDER BY RANDOM()和随机选择它们LIMIT 1000,所以我要做很多步骤来在PHP脚本中节省一些内存。 但是我该怎么做,所以它只给我一个名称上没有重复的列表。 例如[1,"Michael Fox","2003-03-03,34,M,4545"]将返回但不返回[2,"Michael Fox","1989-02-23,M,5633"]。名称字段是最重要的,并且每次执行选择时列表中的名称字段都必须唯一,并且名称字段必须是随机的。 我尝试过GROUP BY name,但bu希望我也可以在id或中继功能中包含id和元数据GROUP BY,但我不想以某种方式对其进行过滤。 任何人都知道如何获取许多列,但在一个列上只做一个不同的列?

8
为byte []设置适当的休眠注释
我有一个使用hibernate 3.1和JPA批注的应用程序。它有一些带有byte []属性的对象(大小为1k-200k)。它使用JPA @Lob批注,并且hibernate 3.1可以在所有主要数据库上正常读取它们-似乎隐藏了JDBC Blob供应商的特性(应该这样做)。 @Entity public class ConfigAttribute { @Lob public byte[] getValueBuffer() { return m_valueBuffer; } } 当我们发现休眠3.5 破坏了(并且不会修复) postgresql中的这个注释组合时(没有解决方法),我们不得不升级到3.5 。到目前为止,我还没有找到明确的修复程序,但是我确实注意到,如果我只是删除@Lob,它将使用postteasql类型bytea(该方法有效,但仅适用于postgres)。 annotation postgres oracle works on ------------------------------------------------------------- byte[] + @Lob oid blob oracle byte[] bytea raw(255) postgresql byte[] + @Type(PBA) oid blob oracle byte[] + @Type(BT) bytea …


3
我应该在PostgreSQL数据库中选择哪种时间戳类型?
我想定义一个最佳实践,以便在多时区项目的上下文中将时间戳存储在Postgres数据库中。 我可以 选择TIMESTAMP WITHOUT TIME ZONE并记住此字段在插入时使用的时区 选择TIMESTAMP WITHOUT TIME ZONE并添加另一个字段,该字段将包含在插入时使用的时区的名称 选择TIMESTAMP WITH TIME ZONE并相应地插入时间戳 我对选项3(带时区的时间戳记)略有偏爱,但希望对此事有个好的见解。

4
检查Postgres JSON数组是否包含字符串
我有一张桌子来存储有关我的兔子的信息。看起来像这样: create table rabbits (rabbit_id bigserial primary key, info json not null); insert into rabbits (info) values ('{"name":"Henry", "food":["lettuce","carrots"]}'), ('{"name":"Herald","food":["carrots","zucchini"]}'), ('{"name":"Helen", "food":["lettuce","cheese"]}'); 我该如何找到喜欢胡萝卜的兔子?我想出了这个: select info->>'name' from rabbits where exists ( select 1 from json_array_elements(info->'food') as food where food::text = '"carrots"' ); 我不喜欢那个查询。一团糟。 作为专职兔子管理员,我没有时间更改数据库架构。我只想适当地喂兔子。有没有更可读的方法来执行该查询?


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.