300MBのテーブルにパーティションを作成し、このコマンドを使用してp0
パーティションからselectクエリを作成しようとしました
SELECT * FROM employees PARTITION (p0);
しかし、私は次のエラーが発生しています
ERROR 1064 (42000): You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the right syntax to use near '(p0)' at line 1
特定のパーティションからデータを取得するためのselectクエリを作成するにはどうすればよいですか?
MySqlのバージョンによっては、PARTITION
キーワードは MySQL 5.6.2 まで存在しません。 MySQL 5.5または5.1を使用しますが、5.6は使用しません。 _MySQL 5.1
_を使用している場合は、以下のような回避策を実行できます。
_SELECT partition, count(ID)
FROM
(
SELECT ID,
case when condition then p1
when condition then p2
.....
end as partition
FROM
table
) s1
GROUP BY partition
_
注:上記の解決策は、希望する出力を得るための回避策です。
このクエリを試して、パーティションの合計行数をカウントすることもできます。
_SELECT table_rows as 'count(*)' FROM information_schema.partitions WHERE table_schema = schema() and table_name ='employees' and partition_name = 'p0';
_
注:table_schema = schema()
を_table_schema = 'yourschema'
_に変更できます
実際、MySQL 5.6以降、サポートされている構文は次のとおりです。
SELECT * FROM table PARTITION (partitionName);
正解です。5.1.54バージョンでは、PARTITIONの明示的な選択はサポートされていません。 this postを参照してください
query
の正しい形式は、以下のとおりです。
select * from employees partition (`p0`);