PostgresSQL

縦に表示

pgsql=> \x
pgsql=> SELECT ・・・・
pgsql=> \x

実行結果表示

pgsql=> EXPLAIN ANALYZE SELECT ・・・

Serial型があったときにシーケンスを合わせなければならない場合

対応しているシーケンスを探す 
pgsql=> \d sample_talbe
pgsql=> SELECT setval('sample_talbe_id_seq', (SELECT max(id) FROM sample_talbe));

データベース一覧表示

$ su - postgres
$ psql -U postgres -l

インデックス一覧表示

pgsql=> \di

ユーザ一覧表示

pgsql=> SELECT * FROM pg_shadow;

大文字、小文字を気にせず検索

SELECT * FROM sample WHERE sample_name ILIKE '%aaa%'

SQL文

テーブル削除

DROP TABLE sample_table;

シーケンス削除

DROP SEQUENCE "sample_table_seq";

シーケンス作成

CREATE SEQUENCE "sample_table_seq" start 1 increment 1 maxvalue 9223372036854775807 minvalue 1 cache 1;

テーブル作成

CREATE TABLE test_table(
  sample_id INT DEFAULT NEXTVAL('"sample_table_seq"'::text) NOT NULL,
  sample_category_id INTEGER,
  sample_type_id INTEGER,
  sample_name VARCHAR(100),
  sample_number VARCHAR(30),
  CONSTRAINT PK_SAMPLE_SAMPLE_ID PRIMARY KEY(sample_id)
);

シーケンスのカウント

SELECT NEXTVAL('sample_table_seq') as seq_no;

PHPからPostgresSQLに接続

<?php
$pg_name = 'localhost'; 
$pg_user = 'aaa'; 
$pg_passwd = 'aaa'; 
$pg_databasename = 'sample'; 


$con = pg_connect("host=$pg_name port=5432 dbname=$pg_databasename user=$pg_user password=$pg_passwd"); 

$sql = 'SELECT * FROM prefectural';
$result = pg_exec($con, $sql); 

echo $sql;
echo '<HR>';

echo '<table border=1>';

	for ($i=0; $i < pg_numfields($result); $i++) {
		echo '<td>'.pg_field_name($result, $i).'</td>';
	}
	echo '</tr>';

	while ($row = pg_fetch_array($result)) {
		echo '<tr>';

		for ($i=0; $i < pg_num_fields($result); $i++) {
			echo '<td>'.$row[$i].'</td>';		
		}

		echo '</tr>';
	}

echo '</tr>';
echo '</table>';

ちなみに、pg_fetch_arrayの使い方

$rows = pg_fetch_array($result, NULL, PGSQL_ASSOC);
print($rows['id']);
print($rows['name']);
Counter: 8026, today: 1, yesterday: 0

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-09-24 (火) 14:56:24 (1369d)