MySQLのテーブル間でデータをコピーしたい。
表1(既存のテーブル):
aid
st_id
from_uid
to_gid
to_uid
created
changed
subject
message
link
表2(新しいテーブル)
st_id
uid
changed
status
assign_status
データの一部のフィールドを表1から表2にコピーしたい。
これはMySQLクエリを使用して実行できますか?
MySQLのテーブル間でデータをコピーしたい。
表1(既存のテーブル):
aid
st_id
from_uid
to_gid
to_uid
created
changed
subject
message
link
表2(新しいテーブル)
st_id
uid
changed
status
assign_status
データの一部のフィールドを表1から表2にコピーしたい。
これはMySQLクエリを使用して実行できますか?
回答:
これはあなたが望むことをします:
INSERT INTO table2 (st_id,uid,changed,status,assign_status)
SELECT st_id,from_uid,now(),'Pending','Assigned'
FROM table1
table1のすべての行を含める場合。それ以外の場合、table1のサブセットのみを追加する場合は、WHEREステートメントを最後に追加できます。
これがお役に立てば幸いです。
フィールドをリストしたくない場合、およびテーブルの構造が同じである場合は、次のようにすることができます。
INSERT INTO `table2` SELECT * FROM `table1`;
または、同じ構造で新しいテーブルを作成する場合:
CREATE TABLE new_tbl [AS] SELECT * FROM orig_tbl;
[AS]
角かっこで囲まれているのかAS
、ここで何が行われているのか
AS
、他のSQL方言で必須です。
最善のオプションは、mysqlでINSERT ... SELECTステートメントを使用することです。
INSERT INTO Table1(Column1,Column2..) SELECT Column1,Column2.. FROM Table2 [WHERE <condition>]
最初にtable2を作成する必要があります。
table2(field1、field2、...)に挿入します field1、field2、....を選択します table1から どこの状態;