今までマニュアルを斜め読みした程度で「MySQL 5.1 から使えるようになったパーティショニング。便利そうだな」などと思っていたのですが、このたび実際に使いたいシーンが出てきたので、利用を前提に調べてみました。 そしたら、ハマることハマること。やりたいことは、日付カラムで1日ごとのパーティションにしたいだけだったのですが(向こう2年分くらいパーティション作っておいて、運用で「古いパーティション削除→新しいのを追加」でいいかなと考えていました)、これができない。 ハマりの原因は「パーティショニングの条件は、プライマリーキーの一部でなければならない」という制約。 http://dev.mysql.com/doc/refman/5.1/ja/partitioning-limitations.html 今回使用を検討したテーブルはプライマリーキーが重要だったので、 CREATE TABLE pt
実施する必要はほとんどないと思いますが、AUTO_INCREMENT をもった PRIMARY KEY を削除したい場合、 ALTER TABLE hoge DROP PRIMARY KEY; とすると Incorrect table definition; there can be only one auto column and it must be defined as a key なエラーとなるので、まず PRIMARY KEY に INDEX を追加して(ここでは id というカラム名としています) ALTER TABLE hoge ADD INDEX id (id); これが終った後に PRIMARY KEY を削除することができます。 ALTER TABLE hoge DROP RRIMARY KEY; この後にカラム自体も削除したい場合は、ふつーに DROP COLUMN
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く