如何自动增加主键?

时间:2019-06-01 14:19:50

标签: sql sqlite

我有这个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

2 个答案:

答案 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

Demo