SQLite несколько автоинкрементных столбцов? - PullRequest
5 голосов
/ 08 сентября 2011

У меня ниже SQL, который я пытаюсь использовать для создания таблицы и некоторых столбцов.Как часть этого, я хочу, чтобы в двух столбцах было автоинкремент целого числа.Когда я пытаюсь использовать приведенный ниже код, он выдает ошибку.

    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')
)

Когда я удаляю ключевое слово «AUTOINCREMENT» из SQL, он работает нормально.

Можно ли иметь две автоинкрементные колонки?Если нет, то есть ли способ, позволяющий одному столбцу автоматически извлекать значение из другого (автоматически увеличивающегося) столбца при его вставке?

Спасибо

Ответы [ 2 ]

10 голосов
/ 08 сентября 2011

У вас не может быть двух полей автоинкремента. Вы должны использовать одно поле автоинкремента. Учитывая, что оба поля всегда будут иметь одинаковое значение для каждой строки, в любом случае, нет необходимости использовать такие поля.

5 голосов
/ 08 сентября 2011

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

Попробуйте использовать триггер после вставки, задав colB = значение colA.ColA - автоинкрементное значение.

...