我想索引MySQL中的現有(並填充)表作爲PHP中ETL腳本的一部分。我有兩個指數報告(稱之爲create_index.sql
):mysql從批處理與CLI或GUI創建索引
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);
這是通過PHP的自動化,通過加載SQL(文本)文件,並執行它作爲批處理人口後運行:
$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);
當如上所列執行(通過PHP),我得到一個標準的'你的SQL語法錯誤'消息。
在MySQL Workbench中執行時,兩個create index
語句完全相同,運行時沒有錯誤。
有人能指出我在GUI的行事方向上做了什麼不同,在我假設的陳述之間,導致了同樣陳述的不同結果?我吠叫錯了樹嗎?
您將需要分割文件中的行,然後執行它們一次一個。查詢方法需要一個單一的sql語句。 –