我想索引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语句。 –