VSCode でSQLを自動的に整形するためのメモ
まずはSQLToolsをダウンロードします。
SQLTools - Visual Studio Marketplace
DBドライバを入れておけばよりSQLファイルを直接DBに接続して実行することが可能です。
SQLTools #Supported Drivers
2.setting.json
SQLToolsの設定を行う。
SQLTools - Settings Properties
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
| {
// SQLTools接続情報
"sqltools.connections": [
{
"name": "MySQL",
"server": "localhost",
"driver": "MySQL",
"port": 3306,
"database": "test_db",
"username": "root",
"askForPassword": false,
"password": "root",
"connectionTimeout": 15
}
],
// SQLTools フォーマット
"sqltools.format": {
"language": "sql",
"indentSize": 2,
"reservedWordCase": "lower",
"linesBetweenQueries": 1
},
// フォーマッター設定
"[sql]": {
"editor.defaultFormatter": "mtxr.sqltools"
},
// 保存時フォーマット設定
"editor.formatOnSave": true
}
|
3. SQLを自動整形
どうのように整形されるか試してみます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| SELECT a, b FROM t CROSS JOIN t2 on t.id = t2.id_t;
SELECT DISTINCT name, ROUND(age/7) field1, 18 + 20 AS field2, 'some string' FROM foo;
-- here is a comment
# another comment
UPDATE "log" SET "time" = '2020-02-01 09:00:00' WHERE "id" = 1 RETURNING "time";
CREATE TABLE foo (id INTEGER PRIMARY KEY,name VARCHAR(200) NOT NULL);
ALTER TABLE supplier MODIFY supplier_name char(100) NOT NULL;
select t.column1 Кириллица_cyrilic_alias
, t.column2 Latin_alias
from db_table t
where a >= some_date1 -- from
and a < some_date2 -- to
and b >= some_date3 -- and
and b < some_date4 -- where, select etc.
and 1 = 1;
|
保存後は以下のようになります。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
| select a,
b
from t
cross join t2 on t.id = t2.id_t;
select distinct name,
ROUND(age / 7) field1,
18 + 20 as field2,
'some string'
from foo;
-- here is a comment
# another comment
update "log"
set "time" = '2020-02-01 09:00:00'
where "id" = 1
returning "time";
create table foo (
id INTEGER primary key,
name VARCHAR(200) not null
);
alter table supplier
modify supplier_name char(100) not null;
select t.column1 Кириллица_cyrilic_alias,
t.column2 Latin_alias
from db_table t
where a >= some_date1 -- from
and a < some_date2 -- to
and b >= some_date3 -- and
and b < some_date4 -- where, select etc.
and 1 = 1;
|
参考情報