我有一个db表说,persons在Postgres中由另一个有列名称的团队传下来,"first_Name".现在我正在尝试使用PG指令器在此列名称上查询此表.
select * from persons where first_Name="xyz";
Run Code Online (Sandbox Code Playgroud)
它只是回归
错误:列"first_Name"不存在
不确定我是在做一些愚蠢的事情,还是我找不到这个问题的解决方法?
在我的PostgreSQL数据库中,我有一个以这种方式创建的唯一索引:
CREATE UNIQUE INDEX <my_index> ON <my_table> USING btree (my_column)
Run Code Online (Sandbox Code Playgroud)
有没有办法改变索引以删除唯一约束?我看了很多 ALTER INDEX文档,但它似乎没有做我需要的.
我知道我可以删除索引并创建另一个索引,但如果它存在,我想找到更好的方法.
我想通过在单个参数上传递多个值来调用函数,如下所示:
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)
有人可以提供语法帮助吗?甚至提供示例代码?
我有一个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) 我有两个 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)