ariyasacca

カテゴリ一覧

Biz | SF | Software | tDiary | Web | ゲーム | サバティカル | スポーツ | ミステリ | メタル | 健康 | 投資 | 携帯 | 時事ネタ | 死生観 | 資格 | 雑記
2004|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|

2010-08-17 (火) [長年日記]

[Software]MySQLのALTER TABLE文で特定のカラムの後に複数カラム追加したい

MySQLで、こういう定義のテーブルを、

+-------------+----------+
| Field       | Type     |
+-------------+----------+
| id          | char(4) |
| insert_date | char(8)  |
| update_date | char(8)  |
+-------------+----------+

こう変更したい。

+-------------+----------+
| Field       | Type     |
+-------------+----------+
| id          | char(4) |
| add_column1 | char(1)  |
| add_column2 | char(2)  |
| add_column3 | char(3)  |
| insert_date | char(8)  |
| update_date | char(8)  |
+-------------+----------+

カラム「id」の直後に複数のカラムを追加したい時って、ALTER TABLE文で出来たんだっけ? と思って調べた。

こんな感じで出来た。

ALTER TABLE
      tbl_name
  ADD add_column1 CHAR(1) AFTER id, 
  ADD add_column2 CHAR(1) AFTER add_column1, 
  ADD add_column3 CHAR(1) AFTER add_column2;

当たり前の話だけど、クエリの実行は1回にまとめてしまった方が速く済むようだ。1カラム追加ごとに毎回実行してはいけない。

環境や設定によりけりだけども、700万レコード持っててインデックスもあちこちに設定してあるテーブル定義の変更がALTER TABLE文1回なら20分程度で完了した。

参考


最近のツッコミ

  1. 雷悶 (2022-03-27(日)11:51)「燃やさず開けてよかった」
  2. ArcCosine (2022-03-27(日)11:39)「エモい」
  3. 雷悶 (2022-02-26(土)20:08)「俺がBEV(かPHEV)を現実的に検討し始める頃には、自家用車に給電する時に謎の二重課税がされるようになってそうで嫌..」

参号館  の中の  日記(ariyasacca)

トップ «前の日記(2010-08-16 (月)) 最新 次の日記(2010-08-21 (土))» 編集