PythonでMySQL操作してまして、昨日つくったテーブルの扱いで気になったことがありました。index、keyなどのことです。
前説:前記事のうち未検証の部分がありました。
元DBの元tableから部分抽出し、新DBへ同名tableへコピーを作る記事UPしました。「LIKE+INSERT」とスクリプトが短くなると喜んだ「AS」を使う方法とには違いがあることがわかりました。
ふたつのスクリプトは前記事をご参照のほど。
pagetaka.hatenablog.jp
「LIKE+INSERT」と「AS」の違い。
Microsoft:Copilotに教えてもらいました。
- LIKE+INSERT:構造(インデックス・主キー)」を引き継ぎ、データを追加する
- AS:データはコピーするが、インデックス・主キーは引き継がないので、あとで追加作業必要
という違いがあるようです。
ASで作ったときに気を付けること。
ASで抽出・コピーのテーブルを作ったときは、
- インデックス・主キーは引き継がない
- データの型が意図せず変更されていることも(計算式を含めると、暗黙的な型変換が発生することなども)
- NULL可否設定も引き継がない=主キーには必須
- あとで、追加作業として、主キー、インデックス、NULL可否などを設定する
等に気を付ける必要があるようです。