小编ADT*_*DTC的帖子

同一查询中的 PostgreSQL nextval 和 currval

我希望调用NEXTVAL一次并多次使用返回的值。但是它不起作用。

假设序列seq_name现在是 10(查询是独立执行的,而不是按列出的顺序):

SELECT NEXTVAL('seq_name'), NEXTVAL('seq_name');
Run Code Online (Sandbox Code Playgroud)

以上将给出 11、12(我再次想要 11 和 11)。

SELECT NEXTVAL('seq_name'), CURRVAL('seq_name');
SELECT NEXTVAL('seq_name'), LASTVAL();
Run Code Online (Sandbox Code Playgroud)

以上将给出 11, 10 OR给出一个NEXTVAL在当前会话中从未调用过的错误。[我知道为什么会发生错误:) ]

有没有办法在同一个 SQL 语句中使用NEXTVALCURRVAL来获得相同的递增值(在这种情况下为 11)以供重用?或者这个问题的简单解决方案?

postgresql

4
推荐指数
1
解决办法
6540
查看次数

从字符串中删除撇号和空格

所以我正在玩字符串操作.我用连字符替换了空白字符.现在我想组合替换空格字符并从字符串中删除撇号.我怎样才能做到这一点?

这是我到目前为止所尝试的:

    String str = "Please Don't Ask Me";
    String newStr = str.replaceAll("\\s+","-");

    System.out.println("New string is " + newStr);
Run Code Online (Sandbox Code Playgroud)

输出是:

Please-Don't-Ask-Me
Run Code Online (Sandbox Code Playgroud)

但我希望输出为:

Please-Dont-Ask-Me
Run Code Online (Sandbox Code Playgroud)

但我不能去除撇号.有任何想法吗?非常感谢帮助.谢谢.

java

4
推荐指数
1
解决办法
8737
查看次数

更改复合主键列顺序,避免在没有主键的情况下暴露表

删除主键索引并重新创建它,如何更改表上的复合主键?

我希望能够更改主键列顺序并让它重新索引并立即应用于单个语句中(这样主键没有"停机时间").

如果无法在单个语句中执行此操作,那么在单个事务中执行此操作的最佳方法是什么,以便在没有主键的情况下,表在任何时间段内都不会被访问?

例如,采用具有主键的表,如下所示:

PRIMARY KEY (col1, col2, col3, col4)
Run Code Online (Sandbox Code Playgroud)

我想将订单更改为(但不添加或删除列):

PRIMARY KEY (col4, col1, col2, col3)
Run Code Online (Sandbox Code Playgroud)

sql postgresql primary-key composite-primary-key postgresql-9.1

4
推荐指数
1
解决办法
1010
查看次数

在reflog过期和gc修剪后推送到源

我使用以下命令删除了本地存储库中一些无法访问且悬空的提交

git fsck --unreachable --dangling --no-reflogs
git reflog expire --expire=now --all
git gc --prune=now
Run Code Online (Sandbox Code Playgroud)

但是我发现删除的提交仍然可以在原始服务器上使用(确切地说是GitHub)。

我试过了,git push --force但是它没有将更改同步到原点。如何强制将更改同步到原点(将无法访问/悬垂的提交也从远程删除)?

这是一个类似的问题,没有答案:

gc prune和git reflog的范围到期,并且相关配置

git garbage-collection git-push git-reflog

4
推荐指数
1
解决办法
863
查看次数

What does # (hash) mean when it doesn't mean Windows key?

Not sure where to search or how to define the keywords. What is the difference between the following?

#IfWinActive, Some Window Title
Run Code Online (Sandbox Code Playgroud)
IfWinActive, Some Window Title
Run Code Online (Sandbox Code Playgroud)

What is the # doing there? I know that in shortcuts, # stands for Windows key, but surely this has to mean something else.

I had been trying to make up a script and the If-else blocks did not work at all. Finally I figured out that it's because I added the # symbol. …

autohotkey

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

CSS浮动正确而不改变顺序?

已经有一些类似的问题了,但这些修复对我来说都不起作用。我想将<li>菜单浮动到右侧,但我无法让它正确执行此操作。

超文本标记语言

 <div id="topnav"><ul class="topnavlinks"><li class="menu-474 first"><a href="/" title="Home page">Home</a></li>
 <li class="menu-540 active-trail active"><a href="/our-company" title="" class="active">Our company</a></li>
 <li class="menu-541"><a href="/news_blog" title="">Blog</a></li>
 <li class="menu-930"><a href="/faq" title="Frequently Asked Questions">FAQ</a></li>
 <li class="menu-900 last"><a href="/contact" title="Contact">Contact</a></li>
 </ul></div>
Run Code Online (Sandbox Code Playgroud)

CSS

#topnav { width:100%; height:14px; background:#b8b8b8; border-bottom:1px solid #989898; }
.topnavlinks { width:980px; margin:0px auto; }
.topnavlinks ul { float:right;  }
.topnavlinks li { float:left;  }
.topnavlinks a { color:#fff; text-decoration:none; padding:0px 27px; }
Run Code Online (Sandbox Code Playgroud)

目前它根本不向右浮动,并且通过其他一些变体,我已经让它向右浮动,只是顺序相反。

html css

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

Coalesce 和 Case-When 与 To_Date 未按预期工作(Postgres 错误?)

我正在使用 Postgres 9.1。以下查询未按预期工作。Coalesce 应该返回第一个非空值。但是,此查询返回空值 (1?) 而不是日期 (2)。

select COALESCE(
    TO_DATE('','yyyymmdd'), --(1)
    TO_DATE('20130201','yyyymmdd') --(2)
    );

--(1) this evaluates independently to null
--(2) this evaluates independently to the date,
--    and therefore is the first non-null value
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?任何解决方法?

编辑:这可能与 Coalesce 完全无关。我用 Case When 构造尝试了一些实验;事实证明,Postgres 有一个丑陋的大错误,它会将其TO_DATE('','yyyymmdd')视为not null,即使选择它返回 null。

[ PS:删除上面以避免误导。Postgres 没有错误,但不会将空字符串视为空字符串。见答案。]

sql postgresql to-date postgresql-9.1

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

".class"获取类的方式 - 是否初始化类?

问题是关于Java.获取类型的类有三种方法(请注意,代码只是用于演示的片段集合):

Class c1 = Class.forName("com.mypkg.MyClass"); //assumes initialize = true
// - OR - 
Class c1 = Class.forName("com.mypkg.MyClass", true/false,
                         this.getClass().getClassLoader());

Class c2 = com.mypkg.MyClass.class;
// - OR - 
import com.mypkg.MyClass;
Class c2 = MyClass.class;

MyClass mc = new MyClass();
Class c3 = mc.getClass();
Run Code Online (Sandbox Code Playgroud)

我的问题是关于初始化.对于方法1,我可以使用boolean参数控制是否初始化类.对于方法3,由于创建了一个对象,显然该类已初始化(对吗?).

但方法2怎么样?.class如果尚未初始化,是否调用初始化类?
如何能一个编程方式检查类是否已经被初始化或没有?

总结答案:

请参阅已接受的解决方案及其评论以获得完整答案 这只是一个总结.

.class如果尚未初始化,则调用不会初始化该类.您可以通过在打印消息的类定义中使用静态块来检查是否正在初始化类.

原始问题的原因:

根据javadoc的说法Class.forName,"对forName("X")的调用导致名为X的类被初始化." .还有两种Class.forName方法,包括一种接受名为initialize的布尔参数.根据javadoc,"仅当initialize参数为true且之前尚未初始化时才初始化类."

java class

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

按特定顺序对ArrayList中的值进行排序

让我先解释一下这个场景:

List<Row> rowValues = new ArrayList<>();

// After adding values into list
At location 0 = [Johnson, 10000]
At location 1 = [Adam, 12000]
At location 2 = [Mike, 11000]
At location 3 = [Johnson, 17000]
At location 4 = [Tony, 10000]
Run Code Online (Sandbox Code Playgroud)

我想column1按升序排列元素,column2按降序排列元素.喜欢:

At location 0 = [Adam, 12000]
At location 1 = [Johnson, 17000]
At location 2 = [Johnson, 10000]
At location 3 = [Mike, 11000]
At location 4 = [Tony, 10000]
Run Code Online (Sandbox Code Playgroud)

我不确定这是否可以通过以下方式实现:

Collections.sort(rowValues); //or …
Run Code Online (Sandbox Code Playgroud)

java sorting collections

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

从后端提交事务查询中的空闲

我找到了pg_stat_activity一个当前的查询<IDLE> in transaction.

如果我调用pg_cancel_backend此查询procpid,则将回滚事务.我对吗?

如何commit从我的数据库控制台向事务发出命令?

pg_commit_backend(procpid)类似的东西吗?

想要提交的原因是,我无法追踪此查询的来源,而且可能来自有缺陷的代码.但是,我无法回滚,因为这将导致在事务闲置之前丢失事务.从后端提交以便查询可以释放其锁定以及其他等待查询可以继续进行将非常有用.

sql postgresql transactions postgresql-9.1

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

即使公共IP地址可能发生变化,Amazon EC2实例也可以拥有静态公共DNS吗?

请注意,我希望AWS为我的EC2实例分配静态IP地址.请花些时间阅读这个问题.

每次我停止并启动我的EC2实例时,我都可以使用Amazon AWS分配新的IP地址.但是,Amazon AWS还会根据此IP地址分配公共DNS主机名.这完全违背了首先拥有主机名的目的,因为主机名应该可以帮助您找到服务器,即使其IP地址已更改.

例如,如果IP地址是12.34.56.78,则AWS分配公共DNS名称,如下所示:

ec2-12-34-56-78.ap-location-1.compute.amazonaws.com
Run Code Online (Sandbox Code Playgroud)

我曾经假设有一个选项可以获得亚马逊可以在内部解析到正确实例的固定公共DNS,就像我的想象力示例:

ec2-myinstance1-112233445566.ap-location-1.compute.amazonaws.com
Run Code Online (Sandbox Code Playgroud)

myinstance1我在EC2控制台中定义的实例名称在哪里,112233445566是我的帐户ID.

这样,即使公共IP地址更改为23.45.67.89,公共DNS仍将与基于固定详细信息的完全相同.

我注意到使用名为"No-IP"的外部第三方服务可以进行类似的设置.但是这会创建外部依赖关系并需要在实例中的操作系统级别进行配置,以启动守护程序服务来执行更新.听起来好像AWS端IP地址更改和No-IP端相应更新之间可能存在延迟.(试过它,它给出了一个简短而又整洁的地址myhostname.ddns.net.这应该适用于现在,操作系统级别的配置非常简单易用.)

但亚马逊AWS应该能够反正在内部管理此(因为实例标识符是子子子域amazonaws.com),并在该实例操作系统本身绝对没有改变.

他们为什么不提供这个选项?是否采用No-IP或类似的第三方服务?或者我找不到隐藏的宝藏?

linux dns amazon-ec2 amazon-web-services noip

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

如何从字符串中提取数字

String a = "sin(23)+cos(4)+2!+3!+44!";
a.replaceAll("\D"); //Not working it is only extracting Digits 
Run Code Online (Sandbox Code Playgroud)

我想提取与本数!只(例如23),则必须将它保存在一个int[]并有这些数字在那里的地方重新粘贴2!3!存在.

java regex

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