相关疑难解决方法(0)

PostgreSQL列名称区分大小写吗?

我有一个db表说,persons在Postgres中由另一个有列名称的团队传下来,"first_Name".现在我正在尝试使用PG指令器在此列名称上查询此表.

select * from persons where first_Name="xyz";
Run Code Online (Sandbox Code Playgroud)

它只是回归

错误:列"first_Name"不存在

不确定我是在做一些愚蠢的事情,还是我找不到这个问题的解决方法?

sql postgresql case-sensitive case-insensitive identifier

138
推荐指数
3
解决办法
9万
查看次数

删除PostgreSQL中索引的唯一性

在我的PostgreSQL数据库中,我有一个以这种方式创建的唯一索引:

CREATE UNIQUE INDEX <my_index> ON <my_table> USING btree (my_column)
Run Code Online (Sandbox Code Playgroud)

有没有办法改变索引以删除唯一约束?我看了很多 ALTER INDEX文档,但它似乎没有做我需要的.

我知道我可以删除索引并创建另一个索引,但如果它存在,我想找到更好的方法.

sql database postgresql

54
推荐指数
3
解决办法
4万
查看次数

在单个参数中传递多个值

我想通过在单个参数上传递多个值来调用函数,如下所示:

SELECT * FROM jobTitle('270,378');
Run Code Online (Sandbox Code Playgroud)

这是我的功能。

CREATE OR REPLACE FUNCTION test(int)
RETURNS TABLE (job_id int, job_reference int, job_job_title text
                                            , job_status text) AS
$$
BEGIN
RETURN QUERY
select jobs.id,jobs.reference, jobs.job_title,
       ltrim(substring(jobs.status,3,char_length(jobs.status))) as status
FROM jobs ,company c
WHERE jobs."DeleteFlag" = '0'
and c.id= jobs.id and c.DeleteFlag = '0' and c.active = '1' 
and (jobs.id = $1 or -1 = $1)
order by jobs.job_title;
END;
$$ LANGUAGE plpgsql;
Run Code Online (Sandbox Code Playgroud)

有人可以提供语法帮助吗?甚至提供示例代码?

sql postgresql stored-procedures plpgsql parameter-passing

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

通过 PHP 访问 PostgreSQL 数据库中的特定模式

我有一个userdb带有 5 个模式的 PostgreSQL 数据库。

Schema 1- Persons
Schema 2- Project
Schema 3- Shop
Schema 4- Test
Run Code Online (Sandbox Code Playgroud)

我能够使用pg_connect. 如何访问该数据库中的特定模式?

当数据库中只有一个模式时,我能够连接到模式。但是现在由于我有多个模式,我很难访问任何特定的模式。

 <?php
 // attempt a connection
 $dbh = pg_connect("host=**.****.*******.*** dbname=test user=merlin port=5433 password=passw123");
 if (!$dbh) {
     die("Error in connection test: " . pg_last_error());
 } 
// execute query
 $sql = "SELECT * FROM test.country";
 $result = pg_query($dbh, $sql);
 if (!$result) {
     die("Error in SQL query: " . pg_last_error());
 }       

 // iterate over result set
 // print each row …
Run Code Online (Sandbox Code Playgroud)

php database postgresql

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

Django 重命名字段并创建同名的新字段会返回 psycopg2 错误:DuplicateTable:关系已存在

我有两个 Django(外键)字段 - FieldA 和 FieldB - 引用同一个类,但是不同的对象。然后我想将 FieldB 重命名为 FieldC。我在一次迁移中重命名了它(自动检测)。

然后我意识到我实际上需要一个与旧 FieldB 同名的新字段(也是同一类的外键)。因此,我创建了第二个迁移来添加新字段:FieldB。由于我刚刚重命名了另一个,我认为这不会给数据库带来任何问题。

我在本地使用 SQLite DB 进行开发,效果很好。当我将其推送到我们的 Postgres 数据库时,这返回了一个错误。

模型类

class ModelClass(Model):
    field_a: ForeignClassA = models.ForeignKey(ForeignClassA, on_delete=models.SET_NULL, blank=True, null=True, related_name='FieldA')
    # this one should be renamed to field_c after which I create another field with the same name and properties.
    field_b: ForeignClassA = models.ForeignKey(ForeignClassA, on_delete=models.SET_NULL, blank=True, null=True, related_name='FieldB')
Run Code Online (Sandbox Code Playgroud)

迁移一:重命名

operations = [
        migrations.RenameField(
            model_name='modelname',
            old_name='FieldB',
            new_name='FieldC',
        ),]
Run Code Online (Sandbox Code Playgroud)

迁移二:添加字段

operations = [
        migrations.AddField(
            model_name='modelname',
            name='FieldB',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='FieldB', to='app.othermodel'), …
Run Code Online (Sandbox Code Playgroud)

python django postgresql django-migrations

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