pagetakaBlog

最近リフォームと鳥取県日南町の記事多め。写真、PC、ネット等の話題も

MySQL:CREATEテーブル使い複製、「LIKE」と「AS」は少し違うみたいです。

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可否などを設定する

等に気を付ける必要があるようです。