Sql 使用两种形式将第一个表的主键的值转换为第二个表的外键
我创建了一个JSP页面来注册新用户。在注册表单中,有5个字段供用户输入详细信息 按下提交按钮后,他们将被带到另一页,在那里他们必须填写另一张表格,其中包括他们的一些其他详细信息。用户以第一种形式输入的数据被成功地插入到第一个表中,但当他们以第二种形式发送数据时,会出现一个错误提示 “java.sql.SQLException:字段'artist_id'没有默认值 价值观” 这里,Sql 使用两种形式将第一个表的主键的值转换为第二个表的外键,sql,jsp,jakarta-ee,primary-key,database-connectivity,Sql,Jsp,Jakarta Ee,Primary Key,Database Connectivity,我创建了一个JSP页面来注册新用户。在注册表单中,有5个字段供用户输入详细信息 按下提交按钮后,他们将被带到另一页,在那里他们必须填写另一张表格,其中包括他们的一些其他详细信息。用户以第一种形式输入的数据被成功地插入到第一个表中,但当他们以第二种形式发送数据时,会出现一个错误提示 “java.sql.SQLException:字段'artist_id'没有默认值 价值观” 这里,atrist\u id是第一个表的主键,也是第二个表的外键。以下是注册和artist\u info 我应该如何更改
atrist\u id
是第一个表的主键,也是第二个表的外键。以下是注册和artist\u info
我应该如何更改此代码以将
artist\u id
的值转换为第二个表的外键(artist\u id)。谢谢。我猜这是因为如果将表中的字段设置为主键,它就不能为空。您似乎没有序列生成器,因此在尝试提交之前,必须在“艺术家信息”中设置艺术家id
因此,这里的解决方案是:
两幅图像是相同的。我猜那个艺术家的id在报名表上?通常,在两个表中执行插入操作时,首先必须提交一个表,然后获取其id,然后提交新表。要么是这样,要么就是将外键设置为非空,以便在提交后可以将其设置为正确的值。我已放置了正确的图像。请再次检查:)
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 + "')");