MySQLとPostgreSQLで他のテーブルの値をテーブルにコピーする方法

otaguro 23views 更新:2017年1月12日

例えば
ユーザー情報のテーブル(TURBINE_USER)から、disabledの値が’F’でlogin_nameが’admin’と’anon’以外のユーザーのuser_idを選択して、別のテーブル(EIP_T_ACL_USER_ROLE_MAP)にid(primary key),user_id(integer),role_id(integer)のデータを作成するには、次のようにします。

MySQL

INSERT INTO EIP_T_ACL_USER_ROLE_MAP(user_id,role_id) SELECT user_id,34 FROM TURBINE_USER WHERE disabled='F' and not (login_name='admin' or login_name='anon');

PostgreSQL

INSERT INTO EIP_T_ACL_USER_ROLE_MAP(id,user_id,role_id) SELECT nextval('pk_eip_t_acl_user_role_map'),user_id,34 FROM TURBINE_USER WHERE disabled='F' and not (login_name='admin' or login_name='anon');

id(primary key)を自動で補完してくれないので、シーケンス操作関数nextval(‘pk_eip_t_acl_user_role_map’)を利用

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません