やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

SQLite3ドットコマンド(.schema)

 create文を返す。

成果物

.help

.schema ?PATTERN?        Show the CREATE statements matching PATTERN

.help schema

.schema ?PATTERN?        Show the CREATE statements matching PATTERN
     Options:
         --indent            Try to pretty-print the schema

.schema

sqlite3 :memory: \
"create table users(id integer primary key, name text not null);" \
"insert into users(name) values('Yamada');" \
"create table items(id integer primary key, name text not null);" \
"insert into items(name) values('おにぎり');" \
".schema"
CREATE TABLE users(id integer primary key, name text not null);
CREATE TABLE items(id integer primary key, name text not null);

パターン指定

sqlite3 :memory: \
"create table users(id integer primary key, name text not null);" \
"insert into users(name) values('Yamada');" \
"create table items(id integer primary key, name text not null);" \
"insert into items(name) values('おにぎり');" \
".schema u*"
CREATE TABLE users(id integer primary key, name text not null);

--indent

sqlite3 :memory: \
"create table users(id integer primary key, name text not null);" \
"insert into users(name) values('Yamada');" \
"create table items(id integer primary key, name text not null);" \
"insert into items(name) values('おにぎり');" \
".schema --indent"
CREATE TABLE users(id integer primary key, name text not null);
CREATE TABLE items(id integer primary key, name text not null);

 変わらないじゃん……。列定義ごとに改行とかしてくれるのを期待していたのだが。

他の方法

 sqlite_masterテーブルのsql列を取得する。

sqlite3 :memory: \
"create table users(id integer primary key, name text not null);" \
"insert into users(name) values('Yamada');" \
"create table items(id integer primary key, name text not null);" \
"insert into items(name) values('おにぎり');" \
"select sql from sqlite_master;"
CREATE TABLE users(id integer primary key, name text not null)
CREATE TABLE items(id integer primary key, name text not null)

類似コマンド

  • .fullschema: sqlite_statテーブルの内容も対象

対象環境

$ uname -a
Linux raspberrypi 4.19.42-v7+ #1218 SMP Tue May 14 00:48:17 BST 2019 armv7l GNU/Linux

前回まで