2017-01-13 3 views
0

現在のHUGEテーブルを複数のテーブルに分割したいと思います。新しいテーブルは、特定のフィールドのエントリーに従って分割する必要があります。テーブルを複数のテーブルに分割するには

など。フィールドが男性と女性のように選択された各レコードでジェンダーである場合、男性は2つのテーブルのように、他の女性。

Old table: 
Gender First Name  Last Name 
Male  John   Smith 
Female Sally   Smith 


New tables: 
Name: Male 
Gender First Name  Last Name 
Male  John   Smith 

Name: Female 
Gender First Name  Last Name 
Female Sally   Smith 

フィールドは市以外のものです。コード内でそれぞれの都市を別々に名前を付けるのではなく、すべての同じ都市をピックアップして個々のテーブルにグループ化するのが好きです。どんな助けでも大歓迎です。

+2

分割テーブルは、一般的には本当に悪い考えです。 –

+1

非常に悪い考えのようです。 1つのテーブルとしてそれを保つ! – jarlh

+0

上記のコメントに同意します。スピードの問題を抱えている場合は、索引付けを検討してください。 – GibralterTop

答えて

0

まずクエリ:

Insert into Table2 select * from Table1 where gender = 'female' 

2番目のクエリ:

Delete from Table1 where gender = 'female' 

とにかく、私はテーブルの分割が本当にあなたのケースのために必要とされる場合に理解するためにいくつかの研究を行うだろうか、それだけでDBを増やす場合構造(および相対的なコード)の複雑さ

-1

あなたが求めていることは、パーティショニングを使用して達成することができます。 MySQLを使用しているので、指定された値に従ってテーブルを分割するので、リスト分割を特にチェックアウトする必要があります。引き続き同じクエリを使用できますが、データベースは自動的に元の正しいパーティションを使用します。

+1

質問はMySQLでタグ付けされています。 – jarlh

関連する問題