【发布时间】:2021-10-16 17:57:50
【问题描述】:
我正在使用 SQLite,但是当我运行代码时,出现错误“NOT NULL constraint failed: places.id (code 1299 SQLITE_CONSTRAINT_NOTNULL)”,有人可以帮帮我吗?
import * as SQLite from "expo-sqlite";
const db = SQLite.openDatabase("places.db");
export const init = () => {
const promise = new Promise((resolve, reject) => {
db.transaction((tx) => {
tx.executeSql(
"CREATE TABLE IF NOT EXISTS places (id INTEGER PRIMARY KEY NOT NULL, title TEXT NOT NULL, imageUri TEXT NOT NULL, address TEXT NOT NULL, lat REAL NOT NULL, lng REAL NOT NULL);",
[],
() => {
resolve();
},
(_, err) => {
reject(err);
}
);
});
});
return promise;
};
export const insertPlace = (title, imageUri, address, lat, lng) => {
const promise = new Promise((resolve, reject) => {
db.transaction((tx) => {
tx.executeSql(
`INSERT INTO places (title, imageUri, address, lat, lng) VALUES (?, ?, ?, ?, ?);`,
[title, imageUri, address, lat, lng],
(_, result) => {
resolve(result);
},
(_, err) => {
reject(err);
}
);
});
});
return promise;
};
【问题讨论】:
-
确保您的 Places 表中的 Id 是一个身份字段,以便在您插入时自动填充。如果不这样做,则必须自己定义 Id
-
您找到解决方案了吗?因为我面临同样的问题,我不知道为什么。
标签: reactjs react-native sqlite expo