React Native使用SQLite报错Error code 1: no such table求助
React Native SQLite 报错:no such table: Movies 解决方法
你的报错原因很明确:在Movies表被创建之前,就执行了查询操作。
看你的useEffect代码,你先调用了selectOperation(),再执行创建表的db.transaction。虽然代码写在前面,但SQLite的事务操作是异步的,查询请求会先于表创建完成前执行,自然找不到表。
修复方案
调整执行顺序,确保表创建(或确认存在)后再执行查询。利用db.transaction的第三个参数(成功回调)来触发查询:
useEffect(() => { db.transaction( (tx)=>{ tx.executeSql( 'CREATE TABLE IF NOT EXISTS Movies (id TEXT, title TEXT, description TEXT, duration TEXT, datetime TEXT, actors TEXT)' ) }, (error) => console.log('创建表失败:', error), // 可选的错误回调 () => { // 表创建完成后执行查询 selectOperation(); } ) }, [])
额外注意
如果之前已经安装过该应用,旧的数据库文件可能已经存在且没有Movies表。这种情况下,卸载应用后重新安装,确保数据库被重新初始化。
内容的提问来源于stack exchange,提问作者anon
相关产品推荐
相关产品推荐

