朋友,
我正在公司做一个Android项目,还剩下一些小工作,我需要你的帮助才能完成任务。
问题是......
我创建了两个表,其中table1有一个空列,用于保存名称...
table2有一个list of names
,目标只是这个列表中的名字应该保存在table1的空列中,而不是它不应该接受任何手动输入的名字。
答案 0 :(得分:1)
您似乎想要使名称列表成为验证:如果用户希望将名称保存到table1,则该名称必须已存在于table2中。
通常这将按照以下示例进行,其中只有PRIZEPRODUCTS中列出的产品可以输入到PRIZEWINNERS表中:例如,根据以下数据,有人无法赢得船:
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]列上建立外键。换句话说,您可以将person-name设为表的键而不是PersonID。但是如果在验证表中更改了该名称,它可能会破坏外键关系,除非启用了ON UPDATE CASCADE,但我不确定Android是否支持此功能。
答案 1 :(得分:0)
我希望以下查询对您有用。
insert into table1(name) values (select name from table2 where id=?)
。
感谢。