PHP에서 ETL 스크립트의 일부로 mysql의 기존 (및 채워진) 테이블을 인덱싱하려고합니다. 나는 두 개의 인덱스 문 (호출이 create_index.sql
)가 :mysql은 CLI 또는 GUI와 비교하여 일괄 처리 인덱스를 만듭니다.
$conn = new mysqli('my_host', 'my_user', 'my_pass', 'my_db');
$result = $conn->query(file_get_contents('create_index.sql');
if (false === $result)
error_log($conn->error);
:
create index my_index_1 on my_table (my_col_1);
create fulltext index my_index_2 on my_table (my_col_2 asc, my_col_3 asc);
이것은 SQL (텍스트) 파일을로드하고 배치로 실행을 통해 인구 후 실행, PHP를 통해 자동화 (PHP를 통해) 위에 나열된대로 실행되면 'SQL 구문에 오류가 있습니다.'라는 표준이 표시됩니다.
MySQL Workbench에서 실행될 때 정확하게 동일한 두 개의 create index
문이 오류없이 실행됩니다.
다른 사람이 GUI 구문과 다른 방향으로 나를 가리킬 수 있습니까? 내가 틀린 나무를 짖고 있니?
파일의 줄을 분할하고 한 번에 하나씩 실행해야합니다. 쿼리 메서드는 단일 SQL 문을 필요로합니다. –