Получение значения первичного ключа первой таблицы во внешний ключ второй таблицы с использованием двух форм - PullRequest
0 голосов
/ 22 января 2020

Я создал страницу JSP для регистрации новых пользователей. В форме регистрации есть 5 полей, в которые пользователи вводят свои данные.

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

"java. sql .SQLException: Поле 'artist_id' не имеет значения по умолчанию ".

Здесь atrist_id является первичным ключом первой таблицы и внешним ключом второй таблицы. Ниже следует регистрация и artist_info.

структуры первой таблицы

структуры второй таблицы

try {

    String address_1 = request.getParameter("address_1");
    String address_2 = request.getParameter("address_2");
    String city = request.getParameter("city");
    String postal_code = request.getParameter("postal_code");
    String phone_number = request.getParameter("phone_number");

    Class.forName("com.mysql.jdbc.Driver");
    Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/painter?autoReconnect=true&useSSL=false", "root", "");
    Statement st = con.createStatement();

    //st.executeUpdate("insert into signup(uid,fname,lname,email,password,country)values('"+firstName+"','"+lastName+"','"+email+"','"+password+"','"+country+"')");
    st.executeUpdate("insert into artist_info(address_1,address_2,city,postal_code,phone_number)"
        + "values('" + address_1 + "','" + address_2 + "','" + city + "','" + postal_code + "','" + phone_number + "')");

Как мне изменить этот код, чтобы получить значение artist_id во внешнем ключе (artist_id) второй таблицы. Спасибо.

1 Ответ

0 голосов
/ 22 января 2020

Я предполагаю, что это связано с тем, что если вы установите поле в таблице в первичный ключ, оно не может быть обнулено. Кажется, у вас нет генератора последовательности, поэтому вы должны установить artist_id внутри artist_info, прежде чем пытаться его зафиксировать.

Итак, решения здесь следующие:

  1. Получить генератор последовательности в вашей базе данных для этого поля
  2. Не забудьте установить значение artist_id внутри artist_info.
...