Bash には cd のように Bash 自体に組み込まれているコマンドがあります。 組み込みコマンドか外部コマンドかは type というコマンドで確認できます。
$ type cd
cd is a shell builtin
組み込みコマンドは "builtin" と出力されます。
$ type ftp
ftp is /usr/bin/ftp
外部コマンドは パスが出力されます。
$ type ls
ls is aliased to `ls --color=auto'
エイリアスはこのように出力されます。
エイリアス元を調べるには "-a" オプションを付けます。
$ type -a ls
ls is aliased to `ls --color=auto'
ls is /bin/ls
type コマンドも Bash の組み込みコマンドです。
$ type -t type
builtin
次のような 2 つの配列があります。 キー "a" がどちらの配列にもあります。
$array1 = array('a' => 1, 'b' => 2); $array2 = array('a' => 5, 'c' => 6);
この 2 つの配列を結合するのですが、 + 演算子と array_merge() 関数で キー "a" の値を上書きするかどうかを使い分けることができます。
まず + 演算子を使ってみます。
print_r($array1 + $array2);
Array
(
[a] => 1
[b] => 2
[c] => 6
)
キー "a" は、1 のままです。
次に array_merge() 関数。
print_r(array_merge($array1, $array2));
Array
(
[a] => 5
[b] => 2
[c] => 6
)
キー "a" は、5 で上書きされました。
このように + 演算子では上書きせず、 array_merge() 関数では上書きします。
以下の SQL の 'xxxxx' の部分を列名に変更します。
SELECT schemas.nspname AS schema_name
, tables.relname AS table_name
FROM pg_attribute AS colmuns
INNER JOIN pg_class AS tables
ON colmuns.attrelid = tables.oid
INNER JOIN pg_namespace AS schemas
ON tables.relnamespace = schemas.oid
WHERE colmuns.attname = 'xxxxx'
ORDER BY schema_name, table_name
テーブルを再作成したときなど、テーブルに serial の列がある場合 既存の番号と重ならないように順序( sequence )の現在の値を設定する必要があります。
順序の現在の値を設定するには次の setval() を使用します。
# SELECT setval('順序名', 3, true);
設定した値を確認するには currval() を使用します。
# SELECT currval('順序名');
ただし、currval() は setval() か nextval() をしたセッション内でしか 使用できません。
ようやくデータを復旧させることができました。