SQLite - как сравнить два столбца - PullRequest
0 голосов
/ 02 сентября 2011

друзья

Я работаю над проектом Android в моей компании, но небольшая работа еще не завершена, мне нужна ваша помощь для выполнения задачи.

Проблема в том ...

Я создал две таблицы, в которых в table1 есть пустой столбец для сохранения имени ...

Таблица2 имеет list of names, цель состоит в том, чтобы только имена из этого списка должны быть сохранены в пустом столбце таблицы1, за исключением того, что она не должна принимать любое имя, введенное вручную.

Ответы [ 2 ]

1 голос
/ 02 сентября 2011

Похоже, вы хотите сделать список имен проверочным: если пользователь желает сохранить имя в table1, имя должно уже существовать в table2.

Как правило, это будет сделано, как показано нижепример, в котором в таблицу PRIZEWINNERS могут быть введены только продукты, перечисленные в PRIZEPRODUCTS: например, кто-то не смог выиграть лодку, учитывая данные ниже:

           PRIZEPRODUCTS
           id
           productname

           1|TV
           2|iPad
           3|backpack



           PRIZEWINNERS
           id
           productid
           winner


           ALTER TABLE PRIZEWINNERS
           ADD CONSTRAINT PRIZEWINNERS_PRIZEPRODUCTS_FK
           FOREIGN KEY(productid) REFERENCES PRIZEPRODUCTS(id)

SQLite не создает внешний ключ, используяALTER TABLE, но как часть инструкции create-table.Смотрите здесь для синтаксиса.Чтобы включить поддержку внешних ключей в Android (2.2), см. здесь .

Теперь вы можете установить внешний ключ в столбце [productname], если [productname] был ключом PRIZEPRODUCTS.Другими словами, вы могли бы сделать person-name ключом таблицы вместо того, чтобы иметь PersonID.Но если это имя изменить в таблице проверки, оно может нарушить отношение внешнего ключа, если только ON UPDATE CASCADE не включен, но я не уверен, поддерживается ли это в Android.

0 голосов
/ 02 сентября 2011

Я надеюсь, что приведенный ниже запрос будет работать для вас.

insert into table1(name) values (select name from table2 where id=?).

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...