Вставка данных SQL в связанные таблицы (внешний ключ) в SQLite - PullRequest
3 голосов
/ 22 октября 2010

У меня есть две таблицы, связанные внешним ключом.Пример:

"CREATE TABLE one (id INTEGER PRIMARY KEY, данные REAL, время TEXT NOT NULL DEFAULT (datetime ('now')));"

"CREATE TABLE two(id INTEGER PRIMARY KEY, родительский INTEGER, CONSTRAINT fc_two FOREIGN KEY (родительский) ССЫЛКИ one (id)); "

Поэтому я хотел бы сделать INSERT INTO со встроенным JOIN, но яуже пробовал (а потом погуглил) и видимо не работает.Я нашел способ сделать это, используя нечто под названием @@ Identity, но, похоже, это не работает с SQLite.По сути, мне нужно:

  1. Вставить данные в один
  2. Найти значение "id" для строки, которую я только что вставил в одну
  3. Вставить данные в два, используя значение идентификатора, которое я только что получил из одного

1 и 3, легко, но чтобы получить 2, мне нужно запросить только что вставленное.Ни один из столбцов данных (кроме идентификатора) не является уникальным, и одну уникальную комбинацию (совокупность всех столбцов без идентификатора в целом является уникальной, только не какой-либо отдельный) невозможно надежно запросить.

Как лучше всего выполнить эту операцию?

1 Ответ

6 голосов
/ 22 октября 2010
SELECT last_insert_rowid()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...