このスクリプトを実行すると
mysql -e "use sentry;
select DISTINCT
concat(
'CREATE ROLE \`',
r.ROLE_NAME,
'\`;')
from
SENTRY_ROLE r
join SENTRY_ROLE_DB_PRIVILEGE_MAP rp on rp.ROLE_ID = r.ROLE_ID
join SENTRY_DB_PRIVILEGE p on p.DB_PRIVILEGE_ID = rp.DB_PRIVILEGE_ID
;" -u mysql_sel -p$Pass
私が得た結果
+---------------------------------------------------------+
| concat(
'CREATE ROLE `',
r.ROLE_NAME,
'`;') |
+---------------------------------------------------------+
| CREATE ROLE `admin_role`; |
唯一の出力を得るにはどうすればよいですか?
+---------------------------------------------------------+
| CREATE ROLE `admin_role`; |
答え1
mysql -N
ASCIIテーブルから列名の出力をスキップするために使用されます。コマンドラインを例にしてみましょう。
mysql -N -e "use sentry;
select DISTINCT
concat(
'CREATE ROLE \`',
r.ROLE_NAME,
'\`;')
from
SENTRY_ROLE r
join SENTRY_ROLE_DB_PRIVILEGE_MAP rp on rp.ROLE_ID = r.ROLE_ID
join SENTRY_DB_PRIVILEGE p on p.DB_PRIVILEGE_ID = rp.DB_PRIVILEGE_ID
;" -u mysql_sel -p$Pass