DB에 문장을 실행하는 방법을 알려주십시오. 2 개 테이블 (잘못된 쓰기 죄송합니다 - 그냥 컬럼에 대한 정보를 제공하는 것입니다)가 있습니다INSERT INTO ... VALUES ... SELECT. INSERT로 중첩 된 문장을 만드는 법?
계약자 (contractor_id, contractor_name, contract_num)
송장 (contractor_id, INVOICE_NUM, invoice_date, INVOICE_AMOUNT을)
'청구서'의 'contractor_id'는 '계약자'의 'contractor_id'에 대한 외래 키입니다. invoice_num, invoice_date, invoice_amount, 'contractor_name'을 'contractors'테이블에서 가져온 경우 'invoices'테이블에 다음 데이터를 삽입하는 방법은 무엇입니까? 작동
솔루션은 다음과 같습니다
public void insertInvoiceDataByContractorName(String contractorsName, String invoiceNum, String date, float amount) {
String contrId = null;
try {
preparedStatement = connection.prepareStatement("SELECT contractor_id FROM contractors WHERE contractor_name=?");
preparedStatement.setString(1, contractorsName);
resultSet = preparedStatement.executeQuery();
while (resultSet.next()) {
contrId = resultSet.getString(1);
}
preparedStatement = connection.prepareStatement("INSERT INTO invoices VALUES(?, ?, ? ,?)");
preparedStatement.setString(1, contrId);
preparedStatement.setString(2, invoiceNum);
preparedStatement.setString(3, date);
preparedStatement.setFloat(4, amount);
preparedStatement.execute();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (preparedStatement != null) {preparedStatement.close();}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
나는 그것이 올바른 만드는 방법을 알고하지 않고 하나의 문을 사용하여 더 간단합니다. 충고에 대해 미리 감사드립니다.
Chetan에 고유 한 가정 삽입합니다
사용, 나를 위해 작동하지 않았다. – aime
어떤 오류가 발생합니까? 이것은 mysql에서 지원됩니다 : http://dev.mysql.com/doc/refman/5.0/en/insert-select.html – 6ton