首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >犀牛插入SQL语句

犀牛插入SQL语句
EN

Stack Overflow用户
提问于 2014-12-11 01:40:33
回答 4查看 354关注 0票数 1

从Rhino,我运行以下脚本:

代码语言:javascript
复制
var SQLstatement = connection.createStatement();

query =  "INSERT INTO TableName(ID, Name, Date) VALUES   ('1234', 'John Smith', '2012-05-24')";

for (var i = 0; i <= 1500; i++)
    {

    SQLstatement.executeUpdate(query);  
}

我所要做的就是将上面查询中列出的值的1500倍插入到SQL表中。

但是,由于SQL中的限制,该语句只插入1000条记录。有办法插入所有1500条记录吗?我不喜欢使用任何文本文件,并选择大容量插入。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-12-11 02:04:56

没有什么可以将您限制为1000个插入,因此它听起来与提交相关。尝试以下选项:

  1. 在结尾处添加提交
  2. 检查Rhino中是否有1000批提交的设置
  3. 试着分别使用500和2500次迭代来运行您的代码,并检查每种情况下插入了多少条记录。
票数 0
EN

Stack Overflow用户

发布于 2014-12-11 01:56:41

不如换一种方法--只运行一次sql语句。这将创建一个cartesian product,它在一条语句中创建1500个记录。

代码语言:javascript
复制
INSERT INTO TableName(ID, Name, Date) 
SELECT '1234', 'John Smith', '2012-05-24'
FROM (SELECT 1 rn UNION SELECT 2) t, (SELECT 1 rn union SELECT 2) t2,
     (SELECT 1 rn union SELECT 2) t3, (SELECT 1 rn union SELECT 2) t4,
     (SELECT 1 rn union SELECT 2) t5, (SELECT 1 rn union SELECT 2) t6,
     (SELECT 1 rn union SELECT 2) t7, (SELECT 1 rn union SELECT 2) t8,
     (SELECT 1 rn union SELECT 2) t9, (SELECT 1 rn union SELECT 2) t10,
     (SELECT 1 rn union SELECT 2) t11, (SELECT 1 rn union SELECT 2) t12
LIMIT 1500
  • SQL Fiddle演示
票数 1
EN

Stack Overflow用户

发布于 2014-12-11 01:53:07

Domt知道您面临的问题是什么,这样1500条记录就不会单次插入,但是如果有什么东西将循环划分为2,1:- 0到999,然后1000到1500。

(只是示例概念,而不是实际代码)

代码语言:javascript
复制
BEGIn TRAN
        for (var i = 0; i <= 999; i++)
        {
           SQLstatement.executeUpdate(query);  
         }

COMMIT
 BEGIn TRAN   
        for (var i = 1000; i <= 1500; i++)
        {
             SQLstatement.executeUpdate(query);  
        }
COMMIT
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27413993

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档