问题
I have the below SQL I am trying to use to create a table and some columns. As part of it, I want two of the columns to autoincrement an integer. When I try using the below code it gives me an error.
CREATE TABLE IF NOT EXISTS 'tasks' (
'rowID' INTEGER,
'gID' INTEGER,
'task' TEXT,
'status' TEXT,
'position' INTEGER,
'updated' INTEGER,
'inlist' TEXT,
'deleted' TEXT,
PRIMARY KEY AUTOINCREMENT ('rowID','position')
)
When I remove the keyword "AUTOINCREMENT" from the SQL it works fine.
Is it possible to have two autoincrementing columns? If not, is there a way I can have one column automatically take the value from the other (auto-incrementing) column as its being inserted?
Thank you
回答1:
You can't have two autoincrement fields. You should use a single autoincrement field. Given that both fields would always have the same value for every row, there's no reason to have to such fields anyway.
回答2:
I need two fields with the same values initially, but the "position" field will be updated at a later time, so I do need two separate values. Is there a way I can have the "position" field automatically take the value from "rowID" as its being inserted
http://www.sqlite.org/lang_createtrigger.html
Try using an after-insert trigger, setting colB = to colA's value. ColA is the auto-incremented value.
来源:https://stackoverflow.com/questions/7352508/sqlite-multiple-autoincrement-columns