■insert ... select
これは前から知ってたけどもう一度おさらい。
insert into TABLE (
col1,
col2,
col3
) select
val1,
val2,
val3
from TABLE2
■on duplicate key update
行がなければinsertして、なければupdateしてくれる。すごい便利。
insert into TABLE (
col1,
col2,
col3
) select
val1,
val2,
val3
from TABLE2
on duplicate key update col2 = values(col2), col3 = col3 + values(col3)
※この場合はcol1が主キーである必要がある。
■update ... select
insert ... select のupdate版みたいな感じ。
※やってみたけどmysqlが固まる。すごく重いかも。
update TABLE A, (
select
col1,
col2,
col3
from TABLE2
) B set A.col4 = B.col1
■replace
これも前から知ってたけどおさらい。
新しいデータはinsert、古いデータはdeleteしてinsertされる。上書きみたいな感じ。
replace into TABLE (
col1
)
select col2 from TABLE2
mysql単体でもかなり色々なことができますね。
0 件のコメント:
コメントを投稿