1

データベースを手作業で開発し、開発用 PC でアプリを実行できるようになりました。

新しいマシンにデプロイするときに、まだ存在しない場合は d/b 構造を作成したいと考えています。

そのため、出力を使用して、アプリの起動時に実行さSHOW CREATE TABLE ...れるいくつかの MySQl コマンドにコピーしましたCREATE TABLE IF NOT EXISTS ...。テーブルごとに 1 つのコマンドです。

ただし、新しい PC ではデータ テーブルは空である必要がありますが、まだ存在しない場合はデフォルト値を設定したい構成テーブルが 1 つ (1 行のみ) あります。

それを行う最も簡単な(最もエレガントな?)方法は何ですか?SELECT *テーブルから行数をチェックし、必要に応じてデフォルトを挿入しますか?

もっと簡単な(または「より良い」)ものはありますか?標準練習とは?

ありがとう

4

3 に答える 3

1

いつものように簡単に使用できCREATE TABLE IF NOT EXISTS config ...、アプリケーションで構成テーブルを読み取ります。そのテーブルがデータを読み取らない場合は、INSERTデフォルト値で行を作成すれば完了です。

また、その構成テーブルに一意のキーを持つ1つの行を持たせINSERT IGNORE、行がすでに存在する場合は挿入デフォルト行をスキップするために使用できます。

于 2012-11-29T06:43:17.743 に答える
1

あなたがすでに提案したよりもエレガントな方法はないと思います.num_rows == 0の場合、データを挿入してください! 単純化できるものは何もありません。

于 2012-11-29T07:00:57.323 に答える
1

あなたが望むのは CREATE TABLE IF NOT EXISTS mytable AS SELECT * from originaltable; だと思います。

于 2012-11-29T06:41:07.057 に答える