试图在嵌入式Derby数据库中使用JRuby 1.2.0和Rails 2.3.2。我已经复制derbytools.jar和derby.jar到$RUBY_HOME/lib,但rake db:migrate仍然给: The driver encountered an error:
cannot load Java class org.apache.derby.jdbc.ClientDriv
DB2支持此语法: UPDATE DEST D SET (AAA,BBB) = (
SELECT MAX(Z.AAA), MAX(Z.BBB) FROM OTHER O WHERE O.ID = D.ID
)
即我可以运行一个选择返回多列,并将结果复制到目标表的各列(一更新)。 德比只允许语法: UPDATE table-Name [[AS] correlation-Name]
德比不支持此语法: UPDATE x SET (col1, col2, ...) = (SELECT a,b,... FROM y ...)
(见this bug)。有没有人有一个解决方法,而不是创建一个循环在Java中选择并发送N更新回来? [编辑]请注意,我有50列和一个复杂的条件(加入x和EXISTS和whatnot)。所以我想避免重复选择50次,请:))
如何使用SQL将Derby中的VARCHAR截断为表中字段长度AUTOMATICALLY? 具体来说: CREATE TABLE A (B VARCHAR(2));
INSERT INTO A B VALUES ('1234');
将抛出SQLException: A truncation error was encountered trying to shrink VARCHAR '123