删除多个表execSQL

时间:2018-07-12 11:51:49

标签: android sqlite

好吧,也许我只是不明白这一点,但是,当我尝试删除多个表时,

import React, { Component } from 'react'
import { IntlProvider } from 'react-intl'

import messages from './localeMessages'

const Enhance = ComposedComponent => {
  const WrapperClass = class extends Component {

    render() {
      const { locale, ...rest} = this.props

      return (
        <IntlProvider
          locale={locale}
          defaultLocale={locale}
          messages={messages[locale]}
          textComponent={React.Fragment}
          >
          <ComposedComponent {...rest} />
        </IntlProvider>
      )
    }
  }
  return WrapperClass
}

export default Enhance

并尝试通过以下方式执行此操作:

static final String DROP_TABLES = "DROP TABLE IF EXISTS ?,?,?,?";

它不起作用

我也收到一条错误消息

db.execSQL(DROP_TABLES, new Object[]{"table1", "table2", "table3", "table4"})
  

<'数据库名称>或<'定义的表名称>预期为'?'

我真的不知道怎么回事

1 个答案:

答案 0 :(得分:2)

您只能将?用于绑定文字值。您不能将其用于绑定标识符,例如表名。

此外,您一次只能放置一张桌子。

所以:

  1. 在SQL字符串本身中使用表名。
  2. DROP TABLE一次仅一个表,每个execSQL()调用一个SQL语句。