Excel データの Mysql へのインポートに関するよくある質問のまとめ: インポート中に発生した外部キー制約にどう対処するか?
データのインポートは、データベース管理における一般的なタスクの 1 つです。Excel を使用してデータを Mysql データベースにインポートすると、外部キー制約の問題が発生する可能性があります。ここでは、いくつかの一般的な外部キー制約の問題とその解決策をコード例とともに示します。
サンプル コード:
import java.sql.*; public class ImportData { public static void main(String[] args) { Connection conn = null; Statement stmt = null; try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "username", "password"); stmt = conn.createStatement(); // 检查关联表是否存在对应的主键值 String checkQuery = "SELECT id FROM parent_table WHERE id = '123'"; ResultSet rs = stmt.executeQuery(checkQuery); if (!rs.next()) { System.out.println("关联表中不存在对应的主键值,插入失败!"); return; } // 插入数据到子表 String insertQuery = "INSERT INTO child_table (parent_id, value) VALUES ('123', 'abc')"; int affectedRows = stmt.executeUpdate(insertQuery); if (affectedRows > 0) { System.out.println("数据插入成功!"); } else { System.out.println("数据插入失败!"); } } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally { try { if (stmt != null) stmt.close(); if (conn != null) conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } }
サンプル コード:
import java.sql.*; public class ImportData { public static void main(String[] args) { Connection conn = null; Statement stmt = null; try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "username", "password"); stmt = conn.createStatement(); // 检查关联表是否存在对应的主键值 String checkQuery = "SELECT id FROM parent_table WHERE id = '123'"; ResultSet rs = stmt.executeQuery(checkQuery); if (!rs.next()) { System.out.println("关联表中不存在对应的主键值,更新失败!"); return; } // 更新带有外键约束的表中的数据 String updateQuery = "UPDATE child_table SET value = 'xyz' WHERE parent_id = '123'"; int affectedRows = stmt.executeUpdate(updateQuery); if (affectedRows > 0) { System.out.println("数据更新成功!"); } else { System.out.println("数据更新失败!"); } } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally { try { if (stmt != null) stmt.close(); if (conn != null) conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } }
概要:
Excel を使用してデータを Mysql データベースにインポートする場合、外部キー制約の問題は比較的一般的です。この種の問題を解決する鍵は、操作を挿入または更新する前に、対応する主キー値が関連テーブルに存在するかどうかを確認することです。上記のコード例を通じて、これらのソリューションをより深く理解し、適用して、データのインポート プロセスをよりスムーズにすることができます。
以上がExcel データの Mysql へのインポートに関するよくある質問のまとめ: インポート中に発生した外部キー制約にどう対処するか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。