Javascript 如何将一个数据字段的值复制到同一SQLite数据库中的另一个表中
我想将主键从一个表复制到同一SQLite数据库中另一个表中的新字段 在我的排行榜上我有; 联盟 联盟名称 在我的系列表中,我有; 系列 联赛 序列名 我希望能够将LeagueID移动到Series表中,并用它填充SeriesLeagueID 我已经对此进行了搜索,但我能找到的似乎只是如何将表中的完整行或列复制到另一个表中 如蒙协助,将不胜感激 主要活动Javascript 如何将一个数据字段的值复制到同一SQLite数据库中的另一个表中,javascript,sqlite,android-studio,Javascript,Sqlite,Android Studio,我想将主键从一个表复制到同一SQLite数据库中另一个表中的新字段 在我的排行榜上我有; 联盟 联盟名称 在我的系列表中,我有; 系列 联赛 序列名 我希望能够将LeagueID移动到Series表中,并用它填充SeriesLeagueID 我已经对此进行了搜索,但我能找到的似乎只是如何将表中的完整行或列复制到另一个表中 如蒙协助,将不胜感激 主要活动 //On Long Click On The RecyclerView Item An Alert Dialog Is Opened With
//On Long Click On The RecyclerView Item An Alert Dialog Is Opened With The Option To Choose Edit/Delete
recyclerView.addOnItemTouchListener(new RecyclerTouchListener(this,
recyclerView, new RecyclerTouchListener.ClickListener() {
@Override
public void onClick(View view, final int position) {
int leagueId = leaguesList.get( position ).getId();
Intent myIntent = new Intent(getBaseContext(), Main2Activity.class);
myIntent.putExtra("value1", leagueId);
startActivity(myIntent);
//Intent myIntent = new Intent(getApplicationContext(), BowlerActivity.class);
//startActivity(myIntent);
}
@Override
public void onLongClick(View view, int position) {
showActionsDialog(position);
}
}));
}
主要活动
public class Main2Activity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate( savedInstanceState );
setContentView( R.layout.league_id );
Toolbar toolbar = (Toolbar) findViewById( R.id.toolbar );
setSupportActionBar( toolbar );
String savedExtra = getIntent().getStringExtra( "value1" );
TextView myText = (TextView) findViewById(R.id.tvLeagueId);
final String s = myText.toString();
myText.setText(savedExtra);
}
}
您可以使用以下内容更新series表:-
UPDATE Series
SET SeriesLeagueID = (
SELECT LeagueId
FROM League
WHERE Leaguename = 'Premier'
)
WHERE SeriesName = 'Test2';
注意到
- 在本例中,LeagueId表中的行(从中获取LeagueId)通过LeagueName列的行具有值Premier来标识(假设您事先不知道LeagueId)
- 要更新的行被标识为SeriesName列中具有值Test2的行
我理解您上述解释的概念。这很直截了当。当我开始一个新的系列赛时,我将如何获得联赛冠军。此时,我还没有像上面的例子中那样给这个系列命名。LeagueID将由它的名称或id决定(通常使用微调器/下拉菜单来实现此目的)(id实际上更好,因为它可以毫无疑问地标识一行(如果定义为整数主键或整数主键自动递增))。您实际如何做到这一点取决于您的代码和要求,因此基本上不可能做到具体。@RobertVogl如果这回答了您的问题,请勾选此作为答案。虽然我理解您预先填充联赛的概念,但这是不可行的。用户正在创建联盟,长id需要传递到下一个活动,以写入列\u LEAGUE\u id的bowler表中。我一直试图将联盟主键传递到下一个活动,但它没有显示。我在上面附上了我的代码片段。不确定我是否让这件事变得比需要的更困难。
DROP TABLE IF EXISTS League;
DROP TABLE IF EXISTS Series;
CREATE TABLE IF NOT EXISTS League (LeagueId INTEGER PRIMARY KEY, LeagueName TEXT);
CREATE TABLE IF NOT EXISTS Series (SeriesID INTEGER PRIMARY KEY, SeriesLeagueID INTEGER DEFAULT NULL, SeriesName TEXT);
-- Add some leagues
INSERT INTO League (LeagueName) VALUES('Premier'),('A'),('B');
-- Add some Series (note that SeriesLeagueId is null when inserting)
INSERT INTO Series (Seriesname) VALUES('Test1'),('Test2'),('Test3');
UPDATE Series
SET SeriesLeagueID = (
SELECT LeagueId
FROM League
WHERE Leaguename = 'Premier'
)
WHERE SeriesName = 'Test2';