已经找到某人的代码,这是where子句的一部分,任何人都知道双冒号表示什么?
b.date_completed > a.dc::date + INTERVAL '1 DAY 7:20:00'
Run Code Online (Sandbox Code Playgroud) 当我跑:
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在某个动作中间崩溃了.
我提交了一个错误的UPDATE声明并丢失了一些数据.
在我已经承诺之后,现在可以回滚吗?
有帮助吗?
ROLLBACK
Run Code Online (Sandbox Code Playgroud)
说NOTICE: there is no transaction in progress.
在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) 我在CREATE TABLE语句中有以下行:
field1_id bigint DEFAULT nextval('table1_field1_id_seq'::regclass) NOT NULL,
Run Code Online (Sandbox Code Playgroud)
regclass在上面表示什么?是否绝对需要添加::regclass?
注:我已经看到了PostgreSQL文档的链接,其讲述regclass,但不明白它.
我对查看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
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"有一个条目,但不能从查询的这一部分引用它.
我在架构内的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»,但它存在.
我有一个简单的用户模型,定义如下:
# 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很新,所以我真的没有任何经验可以借鉴.
会喜欢一些反馈,谢谢.
关注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 …
postgresql ×9
sql ×4
database ×2
casting ×1
collation ×1
create-table ×1
flask ×1
natural-sort ×1
performance ×1
sorting ×1
sqlalchemy ×1
svn ×1