Bagaimana cara memasukkan data ke dalam tabel dengan kunci asing?

Saya punya dua tabel:

pengguna: user_id(PK) | name
produk: product_id(PK) | product | user_id(FK)

Ini adalah hubungan satu-ke-banyak (satu pengguna dapat memiliki banyak produk). Saya membuat tabel saya dengan pernyataan berikut:

String stmt_user = "create table user (user_id int not null generated by default as identity," 
                   + "name varchar(20), " 
                   + "primary key(user_id))";

String stmt_prod = "create table product (product_id int not null generated by default as identity,"
                   + "product varchar(20), "
                   + "constraint ads_pk primary key(product_id), "
                   + "foreign key(user_id)  references user(user_id) on delete cascade)";

Apa yang bisa saya lakukan, ketika saya ingin memasukkan beberapa produk ke satu pengguna tertentu dengan id 2?
Sesuatu seperti ini: "masukkan ke nilai produk(produk) di mana pengguna(user_id) = 2".
Ini adalah bagaimana tampilan meja saya:

|---------------------|------------------|---------------|
|      product_id     |     user_id      |    product    |
|---------------------|------------------|---------------|
|          1          |         2        |     bacon     |
|---------------------|------------------|---------------|
|          2          |         2        |     pizza     |
|---------------------|------------------|---------------|
|          3          |         2        |     beans     |
|---------------------|------------------|---------------|

person gola    schedule 18.06.2020    source sumber


Jawaban (1)


Ah akhirnya menemukan jawaban saya dari sini: Masukkan ke tabel dengan kunci asing

Saya harus memperbarui pernyataan pembuatan produk saya:

String stmt_prod = "create table product (product_id int not null generated by default as identity,"
                   + "product varchar(20), "
                   + "constraint ads_pk"
                   + "foreign key(user_id) references user(user_id) on delete cascade)";

Dan sekarang pernyataan sisipan produk saya terlihat seperti ini dan berfungsi dengan baik:

"insert into product (product, user_id) select product, u.user_id from user u where u.user_id = 2");
person gola    schedule 18.06.2020