Скажем, я создаю таблицу и вставляю строку, выполнив:
CREATE TABLE people (first_name text NOT NULL, last_name text NOT NULL );
INSERT INTO people (first_name, last_name) VALUES ('John', 'Doe');
Я могу выполнить:
SELECT rowid as ID, first_name, last_name FROM people
и получить три столбца данных, как и ожидалось.
Однако, скажем, я хотел превратить автоматический столбец rowid в обычный столбец, чтобы идентификаторы строк не менялись при их удалении и т. Д.
Как я могу это сделать?
Я пытался:
ALTER TABLE people ADD people_id INTEGER;
ALTER TABLE people ADD PRIMARY KEY (people_id);
Первый оператор завершается успешно, но второй дает мне ошибку:
near "PRIMARY": syntax error: ALTER TABLE people ADD PRIMARY
Если я создал таблицуизначально как:
CREATE TABLE people (people_id INTEGER PRIMARY KEY, first_name text NOT NULL, last_name text NOT NULL );
Я бы с самого начала выбрал тип таблицы, которую я ищу.
Важно, чтобы значение rowid поддерживалось в столбце people_id.Например, предположим, что у Джона Доу было 47 человек.После преобразования people_id для John Doe должен быть равен 47.
Полагаю, я могу просто скопировать данные из одной таблицы в другую, но мне интересно, есть ли лучший или стандартный способ сделать этовид трансформации.