- 投稿日:2019-02-09T19:12:05+09:00
Mariadb で ユーザー定義変数を使って値をコピー
SQL でユーザー定義変数を使って値をコピーします。
スタート時点のテーブルの状況
> select * from cities; +-------+--------+------------+------------+ | id | name | population | date_mod | +-------+--------+------------+------------+ | t3321 | 岡山 | 529176 | 2003-09-20 | | t3322 | 倉敷 | 791835 | 2003-02-15 | | t3323 | 津山 | 163754 | 2003-08-18 | | t3324 | 玉野 | 369172 | 2003-01-09 | | t3325 | 笠岡 | 237451 | 2003-03-04 | | t3326 | 井原 | 518397 | 2003-05-21 | | t3327 | 総社 | 248156 | 2003-07-23 | | t3328 | 高梁 | 478294 | 2003-10-26 | | t3329 | 新見 | 863751 | 2003-12-15 | +-------+--------+------------+------------+id が t3328 の population を t3329 の population にコピーします。
1) @vx に値を代入します。
> select population into @vx from cities where id = 't3328'; Query OK, 1 row affected (0.000 sec)2) @vx の値を使って更新します。
> update cities set population=@vx where id='t3329'; Query OK, 1 row affected (0.068 sec) Rows matched: 1 Changed: 1 Warnings: 03) 結果を確認
> select * from cities; +-------+--------+------------+------------+ | id | name | population | date_mod | +-------+--------+------------+------------+ | t3321 | 岡山 | 529176 | 2003-09-20 | | t3322 | 倉敷 | 791835 | 2003-02-15 | | t3323 | 津山 | 163754 | 2003-08-18 | | t3324 | 玉野 | 369172 | 2003-01-09 | | t3325 | 笠岡 | 237451 | 2003-03-04 | | t3326 | 井原 | 518397 | 2003-05-21 | | t3327 | 総社 | 248156 | 2003-07-23 | | t3328 | 高梁 | 478294 | 2003-10-26 | | t3329 | 新見 | 478294 | 2003-12-15 | +-------+--------+------------+------------+4) @vx の値の表示
> select @vx; +--------+ | @vx | +--------+ | 478294 | +--------+