2011-09-02 92 views
0

朋友,SQLite的,如何比较两个列

我做在我公司的Android项目,仍有一些小的工作是剩下的,我需要你的帮助来完成任务。

问题是...

我已经创建了两个表中,表1有一个空列,为宗旨,为节省名称...

的表2有一个list of names,目标是唯一应该将该列表中的名称保存在table1的空列中,而不应该接受任何手动输入的名称。

+0

相当不清楚的问题,请详细说明..... – Richa

+0

在table2列中,已经存储了一个名称列表,目标是table1应该允许将table2中的名称存储在其中。 – SHIV

+0

你的意思是你想把你的表的列的recod复制到另一个表中? – Richa

回答

0

我希望下面的查询能为你工作。

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

谢谢。

1

您似乎想要将名称列表进行验证:如果用户希望将名称保存到table1,则该名称必须已存在于table2中。

通常这会做如下面的例子,其中仅在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语句的一部分。有关语法,请参阅here。要在Android(2.2)中启用外键支持,请参阅here

现在,如果[productname]是PRIZEPRODUCTS的关键字,那么您可以在[productname]列上建立外键。换句话说,你可以使人名成为表格的关键,而不是拥有PersonID。但是,如果在验证表中更改了该名称,除非启用了ON UPDATE CASCADE,否则它可能会破坏外键关系,但我不确定这是否在Android中受支持。