小编Dan*_*son的帖子

postgres列别名问题

作为Postgresql的新手(我正在移动,因为我正在将我的网站移动到只支持它的heroku,我不得不重构我的一些查询和代码.这是一个我无法理解这个问题的问题有:

PGError: ERROR:  column "l_user_id" does not exist
LINE 1: ...t_id where l.user_id = 8 order by l2.geopoint_id, l_user_id ...
                                                             ^
Run Code Online (Sandbox Code Playgroud)

...查询:

   select distinct 
          l2.*, 
          l.user_id as l_user_id, 
          l.geopoint_id as l_geopoint_id 
     from locations l 
left join locations l2 on l.geopoint_id = l2.geopoint_id 
    where l.user_id = 8 
 order by l2.geopoint_id, l_user_id = l2.user_id desc
Run Code Online (Sandbox Code Playgroud)

添加了"l.user_id为l_user_id,l.geopoint_id为l_geopoint_id"的子句,因为显然postgres不喜欢未选中字段的order子句.但是我现在得到的错误使它看起来像我也没有得到别名.任何有postgres经验的人都会看到问题吗?

我可能会遇到一堆这样的问题 - 查询在mySql中运行良好...

mysql sql postgresql alias heroku

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

postgresql nextval生成现有值

我不得不从rails app上的基于mySql的ruby迁移到使用postgresql.到目前为止没有问题,但我不知道如何解决它.

数据的迁移带来了id,而postgresql现在遇到了现有ID的问题:我不清楚它在哪里获得用于确定nextval基数的值:它肯定不是最高值专栏,虽然您可能认为这是一个好主意.无论如何,它现在与现有的id值发生冲突.从标准RoR迁移创建的id列定义为

not null default nextval('geopoints_id_seq'::regclass)
Run Code Online (Sandbox Code Playgroud)

是否有一些地方可以将其作为基础使用的价值入侵?这个问题现在可能出现在20个左右的表格中:我可以使用

'select max(id) from <table_name>' 
Run Code Online (Sandbox Code Playgroud)

但这似乎使自动增量柱的想法毫无意义.

如何最好地处理?

postgresql ruby-on-rails auto-increment nextval

6
推荐指数
2
解决办法
3513
查看次数

在plist中处理持久性布尔值的最佳方法?

处理从UISwitch设置派生的布尔值的最佳方法是什么,并存储在作为持久设置保存到用户目录的NSMutableDictionary中?具体来说,在文件系统中写入和读取的NSMutableDictionary中保持布尔值与数值不同的最佳方法是什么?

========

补充道:感谢Adrian和Ben.因此,结果是如果通过[NSNumber numberWithBool:]存储(这是我一直在做的),没有方便的方法来确定该值是否来自布尔值,是否正确?

第二部分是我存储的NSMutableDictionary最初是通过具有布尔值的plist创建的.这些值在第一次读入时具有类NSCFBoolean.现在我的策略是将我在字典中使用的值与plist中的相应条目进行比较.

重要的是我正在动态生成界面元素以允许用户操纵这些值,并且我将布尔值与UISwitch联系起来.如果我通过转换为数字而丢失原始类,则会得到不合适的用户界面元素.

我正在考虑将数组替换为存储值,其中第一个值是存储值,其余条目是选择:如果存在两个选项,则将其视为布尔值...在其他情况下,它们用作选择器值.但这似乎很麻烦,如果可靠的话.

任何想法欢迎......

iphone boolean objective-c nsnumber nsmutabledictionary

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

NSNotification竞争条件

在单个线程中使用NSNotifications时是否存在任何竞争条件问题?这是一个示例方法:

- (void) playerToggled: (NSNotification *) notification {
if (timerPane.playing && ! timerPane.paused) {
    [playerPane toggleCurrentPlayer];
    [timerPane toggleTimer];
    [mainPane playerToggled];
}
Run Code Online (Sandbox Code Playgroud)

}

条件之后的前两个调用将触发mainPane将接收的NSNotifications.mainPane是否保证在这些通知之后收到playerToggled消息?我应该说这个代码似乎按照需要工作(playerToggled总是执行最后).但我不确定通知的时间问题是什么,我找不到具体的答案.

iphone cocoa race-condition nsnotifications

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

一个方法可以返回NSRange吗?

我有一个返回NSRange的方法.当我从类外部调用此方法时,我收到编译错误.

NSRange tmpRange;
tmpRange = [phrase rangeInString:searchString forString:theLetter goingForward:YES];
return tmpRange.location == -1;
Run Code Online (Sandbox Code Playgroud)

在.h文件中:

#import <Foundation/Foundation.h>


@interface Phrase : NSObject {

}
- (NSRange) rangeInString:(NSString *) tgt forString:(NSString *) find goingForward:(BOOL) fwd;  

@end
Run Code Online (Sandbox Code Playgroud)

通过其他方法在Phrase对象中调用此方法没有问题.编译器说"赋值中的不兼容类型".

任何人都可以向我解释这个吗?我假设它与返回在对象外部生成的NSRange/struct类型值有关,但我不知道它为什么在一个地方而不是另一个地方工作.

iphone macos cocoa cocoa-touch objective-c

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