我有桌子
CREATE TABLE IF NOT EXISTS [products](
[id] INTEGER PRIMARY KEY,
[productCategoryId] INTEGER NOT NULL,
[productMeasurementId] INTEGER NOT NULL,
[eanCode] TEXT NOT NULL DEFAULT '',
[reference] TEXT UNIQUE DEFAULT NULL,
[shortDescription] TEXT NOT NULL DEFAULT '',
[longDescription] TEXT NOT NULL DEFAULT '',
[buyPrice] DECIMAL NOT NULL DEFAULT 0,
[sellPrice1] DECIMAL NOT NULL DEFAULT 0,
[sellPrice2] DECIMAL NOT NULL DEFAULT 0,
[sellPrice3] DECIMAL NOT NULL DEFAULT 0,
[taxPercentage] DECIMAL NOT NULL DEFAULT 0,
[sold] INTEGER NOT NULL DEFAULT 0,
[inStock] INTEGER NOT NULL DEFAULT 0,
[AmountToOrder] INTEGER NOT NULL DEFAULT 0,
[OrderWhenLessThan] INTEGER NOT NULL DEFAULT 0,
[weigth] DECIMAL NOT NULL DEFAULT 0,
[set] INTEGER NOT NULL DEFAULT 0,
FOREIGN KEY(productCategoryId) REFERENCES productCategories(id),
FOREIGN KEY(productMeasurementId) REFERENCES productMeasurements(id)
并且想要进行简单的插入,但是,我尝试涉及列“ set”的任何插入都将失败(sql错误1,这是一种告诉您“我对这个错误我了解得最多”的sqlite方法) ,说“设定”附近有错误) 查询是
sqlQuery = "INSERT INTO [products] (productMeasurementId,shortDescription,longDescription,taxPercentage,buyPrice,sellPrice1,sellPrice2,sellPrice3,inStock,sold,OrderWhenLessThan,AmountToOrder,weigth,productCategoryId,eanCode,set,reference) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);"
所有参数都是正确的,并且如果我运行相同的查询时没有“设置”(当然要删除其中一个?),则它运行也没有任何问题,我将设置一个简单的0作为参数,我尝试了也是1(我想设置为布尔值,但sqlite不支持它,所以它是整数)
答案 0 :(得分:2)
set
是保留关键字。使用反引号转义该名称。
insert into ... `set` ...