2011-09-11 4 views
0

私はこれを何時間も探しています。テーブルペーストのフィールドを同じプロパティを持つ別のテーブルにコピーする方法

フィールドの一部をあるテーブルから別のテーブルにコピーしたいだけです。宛先テーブルでは、コピーしたいフィールドはexsistではありません。

それはコピーと貼り付けのようです。

Ex。私はテーブル

表Aのように

`id` int(11) NOT NULL AUTO_INCREMENT, 
`name` varchar(255) DEFAULT NULL, 
`active` int(11) DEFAULT '0' 

`date` timestamp NULL DEFAULT CURRENT_TIMESTAMP, 
`alias` varchar(255) DEFAULT NULL, 
`voters` int(11) DEFAULT NULL, 
`level` int(11) NOT NULL DEFAULT '0', 
`content` text 

例のような表Bに持っています。私は、同じ構造とデータで表Bから表Aに「内容、レベル、有権者」をコピーしたいと思います。

私はこのような気がしますが、どうですか?

Alter Table A Add content (same SCHEMA as TABLE B.content) 
Alter Table A Add level (same SCHEMA as TABLE B.level) 
Alter Table A Add level (voters SCHEMA as TABLE B.voters) 

答えて

1
INSERT INTO A (col1 , col2 , col3) 
SELECT colB1, colB2,colB3 
FROM B 

彼らは、テーブルAにはデータが含まれていない場合は、空を作成するには、この

CREATE TABLE A LIKE B; 

使用LIKEのようにそれを作成することができます

同じデータ型とサイズ

そのUPDATE でなければなりません元のテーブルに定義されている列の属性とインデックスを含む、別のテーブルの定義に基づくテーブル。

あなたは、テーブルAのデータを保持し、あなたが新しい表Xの内部でこれら二つのテーブルをマージすることができ、テーブルBから一部の列を追加したい場合は、あなたがテーブルAを削除し、X

の名前を変更

上insert文を作ります

CREATE TABLE X 
SELECT * from emp; 

注:表Aはに教えて、これはあまりにも多くの時間がかかります多くのレコードが含まれており、

良い解決策ではなく、AとBの間の関係がある場合、あなたのselect文の意志は、参加が含まれている場合より具体的な解決策を書く

+0

でも、col1、col2、col3はAにはありません。私が尋ねたのはこれです。 –

+0

しかし、テーブルAはすでに存在します。私のメインテーブルです。 Likeを使用するには、まずそれを削除する必要があります。だから私は緩やかなデータです。表Bは一時表です。データはありません。 –

+0

いいえ間に関係はありません。しかし、私はマージする方法を理解していません。 –

関連する問題