2012-04-16 10 views
0

MySql DBに2つのテーブルA、Bがあります。異なるスキーマを持つDBテーブル間でデータをコピーする

表Aは、2列(ユーザ、合格)

表Bは、追加の3列(ユーザ、通過、DATE1、DATE2、ブール値)Iは、テーブルAからデータをコピーし、それを挿入する

を有し、を有します追加の列のデフォルト値で表Bに追加します。 これを達成する最も良い方法は何ですか?彼らはまた、議論のセクションで、あなたの条件とまったく同じように、以下の例を掲載している

http://dev.mysql.com/doc/refman/5.1/en/insert-select.html 

答えて

1

チェックこのURL(SQLが好ましい)

mysql> INSERT INTO orders (customer_cust_id, orderdatetime, message, taxrate, shippingprice) 
    -> SELECT '1', NOW(), null, taxrate, shippingprice FROM customer 
    -> WHERE cust_id='1'; 
    Query OK, 1 row affected (0.01 sec) 

希望これは

+0

それは働いていたが。 唯一の欠点は、テーブルBにauto_incrementカラムがあり、このクエリの後に必要なだけ2倍増分されたことです。何か案は? –

+0

自動増分属性のヌルまたは空白を挿入してください... –

+0

上記のクエリに自動インクリメント列が追加されました - 機能しませんでした –

0

この挿入を助けますステートメントは、挿入句を使用して挿入の値を提供します。

insert into B(user,pass) select user,pass from A; 
1

デフォルトは、テーブルに定義されていない場合:

insert into b (user,pass,date1,date2,boolean) 
select user,pass,'2012-04012','2012-04012',true from a 

テーブル定義がデフォルトで含まれている場合:

insert into b (user,pass,date1,date2,boolean) 
select user,pass from a 
関連する問題