Как получить данные столбца из таблицы 1 и вставить значения этого столбца в таблицу 2 в Android Studio с помощью базы данных SQLite? - PullRequest
0 голосов
/ 14 апреля 2019

Предположим, есть две таблицы: tab1, tab2. Я хочу, чтобы поля имени и идентификатора из tab1 и вставить эти данные в tab2. Я думал об использовании концепции внешнего ключа, но не знаю, как это сделать?

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

@Override
public void onCreate(SQLiteDatabase db) {

    db.execSQL("create table " + USER_INFO_TABLE + " (email TEXT PRIMARY KEY  , name TEXT , contact TEXT (10) , city TEXT , password TEXT)");
    db.execSQL("create table " + SP_INFO_TABLE + " (email TEXT PRIMARY KEY , name TEXT , contact TEXT (10) , city TEXT , password TEXT,service TEXT)");
    db.execSQL("create table " + ADMIN_EVENT_TABLE + "(event_type TEXT , venue TEXT , date TEXT , payment_status TEXT , amount TEXT , email TEXT PRIMARY KEY  , name TEXT ,  contact TEXT , FOREIGN KEY(contact)REFERENCES user_table(contact))");
}

1 Ответ

0 голосов
/ 14 апреля 2019

Чтобы определить внешние ключи, определите ограничение со следующим синтаксисом (внутри имеющегося у вас оператора create, в конце):

db.execSQL("create table tablename(col1 info, col2 info, CONSTRAINT constraint_name FOREIGN KEY (col_name_in_this_table) REFERENCES target_table_name (col_name_in_target_table))");

Если это сбивает с толку ИЛИ вам нужна запись, как вы указали вскажем, table_1, после того как он будет сохранен в table_2, используйте триггер.Вы можете определить это так:

db.execSQL("create trigger trigger_name before insert on table_2\nBEGIN\nINSERT INTO table_1 (cols ...) VALUES (new.col1_in_table2, new.col2_in_table2 ...);\nEND;");
...