データを引き継ぐSQL文
個人的なメモ
create table setting_tbl(
user_id text,
target text,
use_flg smallint
);
※use_flg: 0 or 1
※ mysqlでテスト
例えば、上記のようなテーブルがあったとして、あるユーザ(デフォルトユーザ)のデータが、以下のように登録されているとします。
user_id | target | use_flg
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
default_user | analytis | 0
default_user | calendar | 0
default_user | category | 1
default_user | profile | 1
新規ユーザ追加時にデフォルトユーザの設定情報を引き継ぎたい場合にどうするか?
以下のようなSQL文で、デフォルトユーザのデータを引き継ぎつつ、user_idを明示的に設定することができる。
insert into setting_tbl select 'user_a' as user_id, target, use_flg from setting_tbl where user_id = 'default_user';
実行すると、以下のような結果になる。
user_id | target | use_flg
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
default_user | analytis | 0
default_user | calendar | 0
default_user | category | 1
default_user | profile | 1
user_a | analytis | 0
user_a | calendar | 0
user_a | category | 1
user_a | profile | 1
できた!