我有这个SQL查询来创建我的Penguin
表
CREATE TABLE Penguin (
PenguinID INTEGER PRIMARY KEY,
Name VARCHAR(10),
Height FLOAT,
Weight FLOAT)
但是然后当我执行INSERT INTO Penguin (Name, Height, Weight) VALUES (?,?,?)
时,仅添加名称,高度和重量,而PenguinID
列为NULL
答案 0 :(得分:2)
由于SQLite中存在一些奇怪的默认值,因此它会自动执行此操作。您可以看到here。
正在发生的事情是所有表都有一个PenguinID INTEGER PRIMARY KEY AUTOINCREMENT
列,该列会自动递增。整数主键自动成为rowid
的同义词,因此它会递增。 documentation中对此进行了解释。
不要习惯这种行为,因为它是SQLite特有的。您可以将列定义为rowid
,尽管这会增加一些开销。
答案 1 :(得分:1)
只需将@RequestMapping(value = "/my_url", method = RequestMethod.POST,
consumes = MediaType.APPLICATION_JSON_VALUE)
public @ResponseBody String getItemOrder(@RequestBody String[] itemOrder) {
// code to get itemOrder }
语句中列的定义之外的AUTOINCREMENT
添加为
CREATE TABLE