小编Cra*_*ger的帖子

SQL中的双冒号(::)表示法

已经找到某人的代码,这是where子句的一部分,任何人都知道双冒号表示什么?

b.date_completed >  a.dc::date + INTERVAL '1 DAY 7:20:00'
Run Code Online (Sandbox Code Playgroud)

sql postgresql casting

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

svn 1.7.8数据库被锁定,无法释放

当我跑:

svn cleanup
Run Code Online (Sandbox Code Playgroud)

我收到错误消息:

svn: E200033: database is locked, executing statement 'RELEASE   s0'
Run Code Online (Sandbox Code Playgroud)

或任何其他命令改变DB,例如commit,update

这是在linux服务器上,目录是nfs.

我可以签出另一个版本并复制我的更改,但这是一个麻烦,我认为这个错误会回来.

我如何在工作目录上修复此问题,是否有办法防止它.

ps当前没有进程正在运行,也许eclipse在某个动作中间崩溃了.

svn

50
推荐指数
4
解决办法
6万
查看次数

我可以回滚我已经提交的交易吗?(数据丢失)

我提交了一个错误的UPDATE声明并丢失了一些数据.

在我已经承诺之后,现在可以回滚吗?

有帮助吗?

ROLLBACK
Run Code Online (Sandbox Code Playgroud)

NOTICE: there is no transaction in progress.

database postgresql data-recovery

48
推荐指数
1
解决办法
8万
查看次数

PostgreSQL查询使用单个查询重命名和更改列类型

在PostgreSQL中,如果我需要重命名和更改列数据类型,我应该运行两个单独的查询来执行此操作.

要重命名:

ALTER TABLE <tablename> RENAME <oldcolumn> TO <newcolumn> 
Run Code Online (Sandbox Code Playgroud)

并更改列类型:

ALTER TABLE <tablename> ALTER COLUMN <columnname> <columntype>.
Run Code Online (Sandbox Code Playgroud)

但有没有办法用单个查询来完成这两个工作,如跟随MySQL查询:

ALTER TABLE <tableName> CHANGE COLUMN <oldcolumnname> <newcolumnname> <newtype>
Run Code Online (Sandbox Code Playgroud)

sql postgresql

45
推荐指数
1
解决办法
5万
查看次数

regclass在Postgresql中表示什么

我在CREATE TABLE语句中有以下行:

field1_id bigint DEFAULT nextval('table1_field1_id_seq'::regclass) NOT NULL,
Run Code Online (Sandbox Code Playgroud)

regclass在上面表示什么?是否绝对需要添加::regclass

注:我已经看到了PostgreSQL文档的链接,其讲述regclass,但不明白它.

postgresql create-table

40
推荐指数
1
解决办法
3万
查看次数

如何理解EXPLAIN ANALYZE

我对查看EXPLAIN ANALYZE结果不是很熟悉,我的查询太慢了,我遇到了很大的问题.我试图阅读如何解释解释查询的结果,但我仍然不知道我应该寻找什么,以及可能出错的地方.我有一种感觉,某处有一些大红灯闪烁,我只是看不到它.

所以查询很简单,看起来像这样:

EXPLAIN ANALYZE SELECT "cars".* FROM "cars" WHERE "cars"."sales_state" = 'onsale' AND "cars"."brand" = 'BMW' AND "cars"."model_name" = '318i' AND "cars"."has_auto_gear" = TRUE  LIMIT 25 OFFSET 0
Run Code Online (Sandbox Code Playgroud)

结果如下:

Limit  (cost=0.00..161.07 rows=25 width=1245) (actual time=35.232..38.694 rows=25 loops=1)
  ->  Index Scan using index_cars_onsale_on_brand_and_model_name on cars  (cost=0.00..1179.06 rows=183 width=1245) (actual time=35.228..38.652 rows=25 loops=1)
        Index Cond: (((brand)::text = 'BMW'::text) AND ((model_name)::text = '318i'::text))
        Filter: has_auto_gear"
Total runtime: 38.845 ms
Run Code Online (Sandbox Code Playgroud)

一点背景:我在Postgresql 9.1.6上,在Herokus专用数据库上运行.我的数据库有大约7,5Gb内存,表车包含3,1M行,并且行中有2,0M的行有sales_state ='onsale'.该表有170列.它使用的索引如下所示:

CREATE INDEX index_cars_onsale_on_brand_and_model_name
  ON cars
  USING btree
  (brand COLLATE pg_catalog."default" …
Run Code Online (Sandbox Code Playgroud)

postgresql performance database-design postgresql-performance

38
推荐指数
1
解决办法
3万
查看次数

混合显式和隐式连接失败,"有一个表的条目......但是它不能从查询的这一部分引用"

SELECT
      i.*, 
      r.name AS roomname, 
      c.name AS cat, 
      p.key AS imgkey, 
      p.extension AS imgext
   FROM 
      items i, 
      rooms r, 
      categories c 
         LEFT JOIN photos p 
            ON p.referencekey = i.key 
   WHERE 
          i.room = r.key 
      AND r.key = 663308 
      AND i.sitekey = 32201 
      AND c.key = i.categorykey
Run Code Online (Sandbox Code Playgroud)

执行时上面的查询返回以下错误.

错误:对表"i"的FROM子句条目的无效引用

第1行:... tegory c LEFT JOIN photos p ON p.referencekey = i.key WHER ...

提示:表"i"有一个条目,但不能从查询的这一部分引用它.

sql postgresql

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

模式中的postgresql序列nextval

我在架构内的postgresql 9.3上有一个序列.

我可以做这个:

从foo中选择last_value,increment_by."SQ_ID";

last_value | increment_by
------------+--------------
          1 |            1 (1 fila)
Run Code Online (Sandbox Code Playgroud)

但这不起作用:

SELECT nextval('foo.SQ_ID');

ERROR:  no existe la relación «foo.sq_id»
LÍNEA 1: SELECT nextval('foo.SQ_ID');
Run Code Online (Sandbox Code Playgroud)

怎么了 ?

它说不存在关系«foo.sq_id»,但它存在.

postgresql postgresql-9.3

32
推荐指数
2
解决办法
7万
查看次数

如何自动填充SQLAlchemy数据库字段?(烧瓶-SQLAlchemy的)

我有一个简单的用户模型,定义如下:

# models.py
from datetime import datetime
from myapp import db

class User(db.Model):
  id = db.Column(db.Integer(), primary_key=True)
  email = db.Column(db.String(100), unique=True)
  password = db.Column(db.String(100))
  date_updated = db.Column(db.DateTime())

  def __init__(self, email, password, date_updated=None):
    self.email = email
    self.password = password
    self.date_updated = datetime.utcnow()
Run Code Online (Sandbox Code Playgroud)

当我创建一个新的User对象时,我的date_updated字段被设置为当前时间.我想做的是这样做,每当我保存对User对象的更改时,我的date_updated字段将自动设置为当前时间.

我已经搜索了文档,但对于我的生活,我似乎无法找到任何参考.我对SQLAlchemy很新,所以我真的没有任何经验可以借鉴.

会喜欢一些反馈,谢谢.

database postgresql sqlalchemy flask flask-sqlalchemy

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

混合的字数和字符串的人性化或自然数字排序

关注Sivaram Chintalapudi 提出这个问题,我很感兴趣的是PostgreSQL中是否可以进行自然 - 或"人性化" - 对包含多位数字和单词/字母混合的字符串进行排序.没有固定的字符串中的单词和数字的模式,并且字符串中可能有多个多位数字.

我经常看到这个常见的地方是在Mac OS的Finder中,它自然地对包含混合数字和单词的文件名进行排序,在"3"之后放置"20",而不是在它之前.

所需的校对顺序将由算法产生,该算法将每个字符串拆分为字母数字边界的块,然后对每个部分进行排序,处理具有正常整理的字母块和用于整理目的的数字块作为整数.所以:

'AAA2fred'将成为('AAA',2,'fred')'AAA10bob'将成为('AAA',10,'bob').然后可以根据需要对它们进行排序:

regress=# WITH dat AS ( VALUES ('AAA',2,'fred'), ('AAA',10,'bob') )
regress-# SELECT dat FROM dat ORDER BY dat;
     dat      
--------------
 (AAA,2,fred)
 (AAA,10,bob)
(2 rows)
Run Code Online (Sandbox Code Playgroud)

与通常的字符串排序规则相比:

regress=# WITH dat AS ( VALUES ('AAA2fred'), ('AAA10bob') )
regress-# SELECT dat FROM dat ORDER BY dat;
    dat     
------------
 (AAA10bob)
 (AAA2fred)
(2 rows)
Run Code Online (Sandbox Code Playgroud)

但是,记录比较方法没有概括,因为Pg不会比较ROW(..)构造或不等数量条目的记录.

给定此SQLFiddle中的示例数据,默认的en_AU.UTF …

sql sorting postgresql collation natural-sort

29
推荐指数
4
解决办法
8248
查看次数