source

연결된 sql 문 삽입

factcode 2023. 9. 1. 21:23
반응형

연결된 sql 문 삽입

하나의 문 안에 여러 가지를 삽입해야 하는 스크립트가 있습니다. 예를 들어,

sql = "INSERT INTO `table` (something, something) VALUES (smth,smth); INSERT INTO `table` (something, something) VALUES (smth,smth)";
Statement stmt = connection_db.createStatement();  
 boolean update = stmt.execute(sql);

long sql은 조건에 따라 연결되며 이 길이여야 합니다.phpmyadmin에서 이러한 종류의 sql 문을 사용하는 것은 유효하고 문제 없이 삽입하지만 JAVA는 오류를 뱉습니다.

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'INSERT INTO `

이런 종류의 SQL을 삽입하기 위해 제가 할 수 있는 일이 있나요, 아니면 같은 결과를 얻기 위해 제 코드를 여러 번 실행하도록 다시 만들어야 하나요?

간단한 방법은 배치 SQL 삽입을 사용하는 것입니다.

  sql = "INSERT INTO `table` (something, something) 
          VALUES (smth,smth), (smth,smth)";

단일 쿼리로 더 많은 행을 삽입하기 위한 표준 SQL Weay입니다.

여러 값만 전달

아래 구문을 참조하십시오.

INSERT INTO tbl_name
    (something, something)
VALUES
    (1,2),
    (4,5),
    (7,8);

SQL을 분할하고 반복해야 합니다.

sql = "INSERT INTO `table` (something, something) VALUES (smth,smth); INSERT INTO `table` (something, something) VALUES (smth,smth)";
sqls = sql.split(";");
for(int i=0; i<sqls.length;sqls++) {
  statement = connection.prepareStatement(sqls[i]);
  statement.execute();
}

언급URL : https://stackoverflow.com/questions/51443555/concatenated-sql-statement-insert

반응형