[pgsql-jp: 31576] Re: table をまとめて作りたい

Keiji Mitsubuchi keiji @ nwco.com
2003年 11月 24日 (月) 17:21:49 JST


三淵@NWCです。

これって、PHPのプログラムのバグのように
思いますが、はずしていたら
申し訳ありません。

> $sql3 = "CREATE TABLE s_2003_12_$i (id INTEGER PRIMARY KEY
> DEFAULT nextval('s_2003_12_$i_ID'),

を、

$sql3 = "CREATE TABLE s_2003_12_$i_ID (id INTEGER PRIMARY KEY
DEFAULT nextval('s_2003_12_$i_ID'),

すればいいとか・・・・



> PostgreSQL初心者です。よろしくお願いします。PHPといっしょに使っています
が、tableの作成について質問させていただきます。1日ごとのtableを作っています
が、これをまとめて作りたくて、PHPで以下のスクリプトを書きました。
> <?php
> // テーブルを作る(test1)(2003年12月)
> $dbname = test1;
> exec('su - postgres');
> exec('psql $dbname');
> for ($i = 1; $i < 32; $i++) {
> $conn = pg_connect("dbname=$dbname");
> $sql1 = "CREATE SEQUENCE s_2003_12_$i_ID START 1;";
> pg_query($conn, $sql1);
> $sql2 = "GRANT ALL ON s_2003_12_$i_ID TO nobody;";
> pg_query($conn, $sql2);
> $sql3 = "CREATE TABLE s_2003_12_$i (id INTEGER PRIMARY KEY
> DEFAULT nextval('s_2003_12_$i_ID'),
>         regdate TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP,
> ex_date date,
> num integer,
> nam text,
> syozoku text,
> speed text,
> kennsa text
> );";
> pg_query($conn, $sql3);
> $sql4 = "GRANT ALL ON s_2003_12_$i TO nobody;";
> pg_query($conn, $sql4);
> pg_close($conn);
> }
> print "<a
> href='seikagaku1.php'>1ヵ月分テーブル完成</a>";
> ?>
> これを実行しますと、tableは「s_2003_12_1〜s_2003_12_31」が作成されます。し
かしsequenceは「s_2003_12_」という中途半端なものが1つだけ作られました。本当
はsequenceも「s_2003_12_1_ID〜s_2003_12_31_ID」ができてほしいのですが、どう
したらよいかわかりません。ご教示よろしくお願いいたします。
>




pgsql-jp メーリングリストの案内