假设有一个表创建如下:
create table testTable ( colA int not null )
Run Code Online (Sandbox Code Playgroud)
你会如何删除not null约束?我正在寻找一些类似的东西
ALTER TABLE testTable ALTER COLUMN colA DROP NOT NULL;
Run Code Online (Sandbox Code Playgroud)
如果我使用PostgreSQL,它会是什么样子.令我惊讶的是,据我所知,MySQL文档,Google和是的,甚至Stackoverflow(尽管存在数十个或数百个与NULL相关的问题)似乎并未导致单个简单的SQL语句这将完成这项工作.
所以我在Cakephp应用程序中打开了缓存闸门,现在我要关闭它们......
我已经完成了我所能做的一切:删除tmp文件夹中的所有文件(但不删除文件夹),在我的应用程序的core.php文件中打开'Cache.disable',尝试从某些控制器中清除缓存使用clearCache()和Cache :: clear()(但我怀疑这不起作用,因为它没有加载控制器 - 由于缓存).
我已经非常有效地停止了我的开发过程,因为缓存不会关闭.任何人都有一些我可以尝试的想法吗?我开始认为它可能在浏览器内或者我的托管服务中,但它可能只是Cakephp搞砸了我.
我正在考虑使用GWT根据MVP模式实现用户界面,但对如何继续进行疑问.
这些是(我的一些)目标:
我会在视图和演示者之间放置一个接口,并使用Observer模式将两者分离:视图生成事件并通知演示者.
令我困惑的是GWT中不支持java.util.Observer和java.util.Observable.这表明我所做的并不是建议的方式,就GWT而言,这引出了我的问题:使用GWT实施MVP的推荐方法是什么,特别是考虑到上述目标?你会怎么做?
我正在使用第三方库,它基本上创建了一个输出目录,其中包含不同类型的文件和子目录.我希望能够编写单元测试来确认输出是否正确.
我希望能够将lib与RAM磁盘一起使用,这样磁带库就不会以任何方式触及实际的磁盘板.我们的想法是让测试运行和清理非常快(丢弃RAM磁盘?).
我可以使用的两个最突出的选项是Commons VFS和JSR 203.前者对我没用,因为我希望使用java.io.*API而不是Commons VFS类透明地工作.后者没有削减它因为我必须使用JDK 6(它应该是JDK 7的一部分)而且我不知道它是否能与java.io.*无缝地工作(我不会打赌吧.
还有其他解决方案,但我不能使用它们的原因与我不能使用Commons VFS相同.由于所涉及的库的复杂性,模拟是不可能的.
在我的linux机器上,我可以轻松地创建一个RAM驱动器并使用java.io.*API,就像我对磁盘上的文件一样.问题是,我希望它是跨平台的,更具体地说,是让磁盘设置成为测试程序的一部分,而不是外部的东西.
那么,有没有办法在Java中注册一个可以与标准java.io.*API一起使用的RAM驱动器?
我们在CI服务器(哈德森)上看到相对较长的构建时间,并且它们开始妨碍我们.我知道哈德森所做的不仅仅是调用maven而且我很乐意为它提供10-20%的工作时间,但是数量级减速似乎太多了.
任何人都知道为什么会这样,以及如何解决问题?我将首先说出不是原因:
maven目标实际上是干净和安装,没有任何花哨和资源密集,如javadoc,checkstyle等.查看hudson构建任务控制台输出,当"从[我们的Nexus artefact存储库]中检索以前的构建号"时,似乎有延迟,但我不知道一个简单的方法来衡量这一步的表现,发布一个人工制品似乎太简单了,无法证明速度的总差异.
(问题也在这个帖子中描述)
更新:
我们已将Hudson/Jenkins升级到最新版本,并且已经能够使用计时插件.精简版:
更多细节
在我们的一个真正的maven项目(maven构建时间:3分钟,哈德森构建时间:9分钟)我们可以看到哈德森也在3分钟内执行构建,但是然后花费6分钟将人工制品上传到nexus.
使用nexus的web UI执行另一个人工制品的手动上传,我能够确认以下内容:
<nexusworkdir>/nexus/storage/test/test2/test2/1.0.0/test2-1.0.0.rpm
真正的益智者是为什么nexus需要一分钟来创建这个文件:
<nexusworkdir>/nexus/proxy/attributes/test/test2/test2/1.0.0/test2-1.0.0.rpm
据我所知,它只是计算一个MD5和SHA1签名并记录一般的人工制品信息,但75MB文件的md5sum和sha1sum需要<1s才能运行...
最后,它似乎不是某种网络超时,因为延迟似乎与人工制品大小大致成正比.
知道nexus在收到人工制品后所做的事情.
更新2:
将nexus日志级别设置为debug,nexus会在上传人工制品时记录以下内容:
Run Code Online (Sandbox Code Playgroud)... 2011-04-05 14:38:53 DEBUG [jpsc28za2RtYQ==] -
osnpslfDefau~ - 复制缓冲区大小为4096的流
Run Code Online (Sandbox Code Playgroud)2011-04-05 14:39:55 DEBUG [ython-2.5.2.jar] - org.mortbay.log
- RESPONSE /nexus/content/groups/public/org/python/jython/2.5.2/jython-2.5.2.jar 200
Run Code Online (Sandbox Code Playgroud)2011-04-05 14:40:07 DEBUG [-2.5.2.jar.sha1] - org.mortbay.log
- 请求/nexus/content/groups/public/org/python/jython/2.5.2/jython-2.5.2.jar.sha1 on
Run Code Online (Sandbox Code Playgroud)... 2011-04-05 14:40:12 DEBUG [-2.5.2.jar.sha1] - org.mortbay.log
- RESPONSE /nexus/content/groups/public/org/python/jython/2.5.2/jython-2.5.2.jar.sha1 200
Run Code Online (Sandbox Code Playgroud)2011-04-05 14:43:45 DEBUG [ndex.properties] - org.mortbay.log
- 请求org.mortbay.jetty.HttpConnection@141a720上的/nexus/content/groups/public/.index/nexus-maven-repository-index.properties
Run Code Online (Sandbox Code Playgroud)... …
作为该命令的输出
createdb -E UTF8 --lc-collate=hr_HR.UTF8 --lc-ctype=hr_HR.UTF8 tempdb
Run Code Online (Sandbox Code Playgroud)
我明白了
createdb: database creation failed: ERROR: invalid locale name hr_HR.UTF8
Run Code Online (Sandbox Code Playgroud)
我是 postgresql 的菜鸟,所以任何帮助将不胜感激!从上面的命令可以看出,我需要创建支持克罗地亚语的数据库。我的操作系统是:
Linux tiho-desktop 2.6.31-20-generic #58-Ubuntu SMP
Fri Mar 12 04:38:19 UTC 2010 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
并且只是为了发展。我计划将此数据库移至 CentOS 或类似的系统以进行生产。我正在使用 postgresql 8.4。
提前致谢,蒂霍
我有一个表,其记录代表某些对象。为了简单起见,我假设该表只有一列,这就是唯一的ObjectId
. 现在我需要一种方法来存储该表中的对象组合。组合必须是唯一的,但可以是任意长度。例如,如果我ObjectId
有
1,2,3,4
Run Code Online (Sandbox Code Playgroud)
我想存储以下组合:
{1,2}, {1,3,4}, {2,4}, {1,2,3,4}
Run Code Online (Sandbox Code Playgroud)
订购不是必需的。我当前的实现是有一个将sCombinations
映射到s 的表。因此每个组合都会收到一个唯一的 ID:ObjectId
CombinationId
ObjectId | CombinationId
------------------------
1 | 1
2 | 1
1 | 2
3 | 2
4 | 2
Run Code Online (Sandbox Code Playgroud)
这是上面示例的前两个组合的映射。问题是,查找特定组合的查询CombinationId
似乎非常复杂。该表的两个主要使用场景是迭代所有组合,以及检索特定组合。该表将被创建一次并且永远不会更新。我通过 JDBC 使用SQLite。是否有更简单的方法或最佳实践来实现这种映射?
场景:一个团队使用某种 SCM 处理 Java/Maven/JUnit 项目。我们希望增加测试覆盖率,这意味着所有开发人员都应该更密集地测试代码。使用诸如 SonarQube 之类的工具来衡量整体测试覆盖率的改进非常容易,但是您需要针对每个开发人员执行此操作,以便能够识别异常值:测试覆盖率最高的工程师和覆盖率最差的工程师。
您如何回答“开发人员 X 在上个月修改的代码的测试覆盖率是多少”这个问题?是否有一种替代的、近似的测量方法可以更容易地遵循?
是否可以将类型为"[int] IDENTITY(1,1)"的列的"table"类型的参数传递给过程,并使用作为输入参数传递的DataTable对象执行此存储过程?
我收到以下错误:"INSERT到表变量上不允许的标识列.表值参数\"@ xxxxx \"的数据不符合参数的表类型."
我能找到的唯一相关注释是"如果在表值参数中为标识列提供值,则必须为会话发出SET IDENTITY_INSERT语句."
似乎即使没有在表参数中设置PK,它也会在某个时刻自动设置.这种情况发生在哪里,如何避免?
java ×3
ado.net ×1
caching ×1
cakephp ×1
combinations ×1
constraints ×1
gwt ×1
hudson ×1
jenkins ×1
junit ×1
localization ×1
maven ×1
maven-2 ×1
mysql ×1
nexus ×1
null ×1
orm ×1
performance ×1
php ×1
postgresql ×1
ramdisk ×1
sonarqube ×1
sql ×1
ubuntu ×1
unit-testing ×1