android sql查询符合条件的数量,android – 在单个execSQL查询中可以指定的SQL变量的极限是多少...

我正在努力提高我的

Android数据库插入的速度.我目前正在做的是生成一个字符串,如:

SELECT ? as title, ? as musician_id, ? as album_id, ? as genre

UNION SELECT ?, ?, ?, ?

UNION SELECT ?, ?, ?, ?

UNION SELECT ?, ?, ?, ?

UNION SELECT ?, ?, ?, ?

UNION SELECT ?, ?, ?, ?

然后执行它

SQLiteDatabase database = //initialized in some way

String insertQuery; // the string of the query above

String [] parameters; // the parameters to use in the insertion.

database.execSQL(insertQuery.toString(), parameters);

当我尝试插入大约2000行时,我收到以下错误:

Caused by: android.database.sqlite.SQLiteException: too many SQL variables (code 1): , while compiling: INSERT INTO songs (title, musician_id, album_id, genre)

SELECT ? as title, ? as musician_id, ? as album_id, ? as genre

UNION SELECT ?, ?, ?, ?

UNION SELECT ?, ?, ?, ?

当我尝试插入大约200行时,一切都正常.

我想这很明显 – 我试图在一个execSQL中传入太多的变量.有谁知道什么是极限,以便我可以拆分我插入的行适当的批次?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值