- ベストアンサー
PostgreSQLのフィールドについての疑問
- PostgreSQLの設定におけるフィールド「rdate」の意味を教えてください。
- 初心者の私は、DBの違いによるフィールド設定の意味が分かりません。
- フィールドの意味が分からず躓いています。どなたか教えていただけませんか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (1)
- chukenkenkou
- ベストアンサー率43% (833/1926)
関連するQ&A
- セッションに関して
お世話になっております。 先日も「セッションに関して」と質問させて頂きましたが、引き続き進めている中で、どうも解釈に困ってしまい改めて質問させて頂きます。 と、もうしますのも、下記サイトにある説明で、 http://www.stackasterisk.jp/tech/php/php03_06.jsp;jsessionid=aCXqtz5vDdDg セッション管理用DB(PostgreSQL)を以下の様に設定とありますが、MySQLでは、どのようなフィールドになるのでしょうか? CREATE TABLE session ( sid varchar(32) primary key, uid varchar(16) not null, password varchar(16), rawdata varchar(512), rdate timestamp default 'now' ); また、サイトで紹介させているスクリプトには、随時session_handler.php とい うプログラムを requireしているのですが、require しない場合の通常のファイルとは、どのような記述になるのか概要だけでも教えてはいただけないでしょうか? サイトの説明では、「一人のユーザが 10 のページを表示したら、PostgreSQL の構造上 10 行のデータが追加されます。」ということで、セッション管理にはMySQLを勧めておられるのですが(当方もMySQLです)、先のフィールドに関する質問も含めて、少し具体的にお教え願えればと思っております。 この手の質問はPHPではなく、MySQLかな?などと思いつつ、まとまりのない質問になってしまいましたが、スクリプトの構造が分からず、こちらにて投函させて頂きました。 回りくどい質問になってしまいましたが、このサンプルにおいてのMySQLでのフィールドおよび設定。 session_handler.phpファイルの概要。およびrequireしない場合のスクリプトの記述方法(流れだけで構いません)をご指導頂ければ幸いに思っております。 お忙しいところ恐縮ですが宜しくお願い申し上げます。
- ベストアンサー
- PHP
- テーブル作成時にエラー?
こんにちは。 以下のような環境で操作を行っています。 RedHatLinux9.0 PostgreSQL 8.0.3 テーブル作成時に次のようなメッセージが出力され、テーブルを作成することができません。 NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "PK_SIKYO" for table "TM_SIKYO" ちなみに実行したSQL文は次の通りです。 CREATE TABLE "TOUSHIN"."TM_SIKYO" ( "SHIKYO_CD" int4 NOT NULL DEFAULT nextval('"TOUSHIN"."TM_SIKYO_SHIKYO_CD_seq"'::text), "SHIKYO_NM" varchar(50), "SHIKYO_RNM" varchar(50), "SHOW_FLAG" bool, "UNUSE_FLAG" bool, "CREATE_DATE" timestamp DEFAULT ('now'::text)::timestamp(6) with time zone, "CREATE_ID" varchar(10), "CHANGE_DATE" timestamp DEFAULT ('now'::text)::timestamp(6) with time zone, "CHANGE_ID" varchar(10), CONSTRAINT "PK_SIKYO" PRIMARY KEY ("SHIKYO_CD") ) WITHOUT OIDS; SQL文はWindows版のPostgreSQLから作成したものを、そのままコピーして利用しました。 プライマリーキーが正しく設定できていないようなメッセージだと思うのですが、対処法など詳しいことが分からずに困っています。 Windows版から出力したSQL文なので、SQL文に間違いがありそうな感じでもないですし、一体何が原因なのでしょうか?
- ベストアンサー
- PostgreSQL
- MySQLのFOREIGN KEYについて
MySQLのFOREIGN KEYについて質問です。 下記のようにitemテーブルを作ってからarrivalhistoryテーブルを作ろうとすると ERROR 1005 (HY000): Can't create table 'xxx_db.arrivalhistory' (errno: 150) というエラーが出てしまいます。 自分でもForeign keyの作り方等調べてはみたのですが、 上手く解決することができません。 どなたかアドバイス下さい。お願いします。 ・親 create table item ( id bigint not null primary key, itemno VARCHAR(50) ) engine=InnoDB; ・子 create table arrivalhistory( id int primary key, itemno varchar(50), arrivaldate date, index(itemno), foreign key(itemno) references item(itemno) on update cascade on delete cascade ) engine=InnoDB;
- ベストアンサー
- MySQL
- 投稿サイトをサクッと作りたい
http://webeg.info/php-course/step3-030/のログイン画面をログインして、投稿サイトを作りたいのですが、 ログイン情報はどこで定義してなんというものになっているのでしょうか? 空にして もログインできません。 投稿部分だけが欲しいのですが、ログインしないと作れないようです。 もちろんもっと簡単に投稿サイトが作れる情報があればそれでも構いません。 CREATE TABLE `users` ( `user_id` int(11) NOT NULL COMMENT '通しID', `user_loginid` varchar(20) NOT NULL COMMENT 'ログインID', `user_password` varchar(100) NOT NULL COMMENT 'パスワード', `user_updated` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新日時', `user_created` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '作成日時' ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='管理画面ユーザー'; ALTER TABLE `users` ADD PRIMARY KEY (`user_id`); ALTER TABLE `users` MODIFY `user_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '通しID', AUTO_INCREMENT=1; アカウントの追加 を実行しただけなのでPW、IDは空と考えてよいでしょうか? パスワードの所には長さ100とコメントパスワードとしか記載がないのですがdbではどこにpwを入れるのですか? この場合は空と考えるべきでしょうか? 投稿サイトをサクッと作りたいだけなのですが、もっと簡単に作る方法はないのでしょうか?
- ベストアンサー
- MySQL
- pearの認証(Auth)ができません。
下記のサイトを参考にして認証サンプルを作成しました。 http://blueeyesblue.cocolog-nifty.com/technote/2007/09/pearauthmdb2-e2.html 下記のコマンドを実行してインストール済みかを確認しました。 pear list -------------------------------------------------- Auth 1.6.4 stable MDB2 2.5.0b3 beta MDB2で正常にデータベースに接続できるかを確認しました。 問題なく接続できました。 下記のテキストボックスに値を入力して[Login]ボタンをクリックしたら下記のエラーが出力されました。 ・Username ・Password ※ログイン画面はAuthのデフォルト画面を使用しています。 [エラー] login failed テーブルは下記のように作成しています。 CREATE TABLE TBL_USER ( no BIGSERIAL PRIMARY KEY, name VARCHAR(64) NOT NULL, mail VARCHAR(128) NOT NULL, password VARCHAR(128) NOT NULL, del VARCHAR(1) DEFAULT '0' NOT NULL, ins_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP, ins_name VARCHAR(64) NOT NULL, upd_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP, upd_name VARCHAR(64) NOT NULL ); ※テーブルのpasswordフィールドに格納している値は下記のように生成して追加しました。 mkpasswd -l 7 php -r 'echo md5(*******);' ※md5に指定している値はmkpasswdで出力された値を指定しました。 サンプルコードは下記の個所のみを変更しました。 $options = array( "dsn" => "pgsql://ユーザー名:パスワード@localhost/データベース名", "table" => "TBL_USER", "usernamecol" => "name", "passwordcol" => "password", ); 正直、何が原因なのかわからず困っています。 どうかご存知の方がいましたらアドバイスいただけませんでしょうか。 また今まで認証は1から自作していましたがpearの認証は使いやすいみたいな記事を読んだので使用しようと思いましたが・・・ 自作の認証とpearの認証ではどちらがいいのでしょうか。 ご意見等、何でも構いませんので教えていただけませんでしょうか。 宜しくお願いします。
- 締切済み
- PHP
- MySQLの地理情報の取り扱いについて。
よろしくお願いいたします。 PostgreSQLの、 CREATE TABLE global_points ( id SERIAL PRIMARY KEY, name VARCHAR(64), location GEOGRAPHY(POINT,4326) ); というSQLの、最後の location GEOGRAPHY(POINT,4326) というところを、MySQLで、実装しようとしているのですが、MySQLにも、地理情報に関する命令はあるようですが、どうすればよいのか見当がつかなく困っています。 どなたか、MySQLでは、こういう風に書くなどのことをご存知の方おられましたら、どんなことでも構いませんので、ご教授願います。
- ベストアンサー
- MySQL
- 簡単に正規化したい
プログラム素人です。 初心者なのでこんなテーブルを思いつくのですが、これってカラムをいちいち作らないといけないので後のメンテが大変な気がします CREATE TABLE hoge( id INT PRIMARY KEY, item1 VARCHAR(255), value1 INT, item2 VARCHAR(255), value2 INT, item3 VARCHAR(255), value3 INT ); こんな感じのテーブルにどんどんINSERTしていきたいのです CREATE TABLE hoge( id INT PRIMARY KEY, item VARCHAR(255), value INT ); 聞きたいこと MYSQL側 IDにPRIMARY KEYが付いているのですが2つ同じPRIMARY KEYはINSERTでききませんよね?どうすればいいでしょうか? perl側 IDごとにまとめて取得して配列に入れる方法はありますか? idが1のアイテムを全部取得して配列に入れる方法がわかりません(他にいい方法があったらお願いします) よろしくお願いします
- ベストアンサー
- MySQL
- エラーになってしまうCREATE文
MySQL 5.0.21(Win版)を導入してみたのですが、 http://hotwired.goo.ne.jp/webmonkey/2000/01/index2a_page5.html にある下記のSQL文を「MySQL Command Line Client」から実行すると CREATE TABLE employees ( id tinyint(4) DEFAULT '0' NOT NULL AUTO_INCREMENT, first varchar(20), last varchar(20), address varchar(255), position varchar(50), PRIMARY KEY (id), UNIQUE id (id)); を実行すると、 mysql> CREATE TABLE employees ( id tinyint(4) DEFAULT '0' NOT NULL AUTO_INCREMEN T, first varchar(20), last varchar(20), address varchar(255), position varchar(5 0), PRIMARY KEY (id), UNIQUE id (id)); ERROR 1067 (42000): Invalid default value for 'id' mysql> とエラーになってしまいます。なぜでしょうか?
- ベストアンサー
- MySQL
- FOREIGN KEYの書き方
オラクル9iを使っています たとえば ☆MST_商品テーブル ・商品コード varchar2(10) 主キー ・分類区分 varchar2(10) ・商品名称 varchar2(30) ・仕入先コード varchar2(10) ☆MST_仕入先テーブル ・仕入先コード varchar2(10)主キー ・仕入先名称 varchar2(30) ・取引区分 varchar2(30) があったとして 商品テーブルの仕入先コードと仕入先テーブルの仕入先コードにFOREIGN KEYを使ってリレーションを張りたい場合どのようにSQL文は書いたらいいのでしょうか? ☆CREATE TABLE MST_仕入先 (仕入先コード varchar2(10) NOT NULL, 仕入先名称 varchar2(30), 取引区分 varchar2(30), ALTER TABLE MST_仕入先 ADD CONSTRAINT PMST_仕入先 PRIMARY KEY(仕入先コード); と CREATE TABLE MST_商品 (商品コード varchar2(10), 分類区分 varchar2(10) 商品名称 varchar2(30), 仕入先コード varchar2(10), ALTER TABLE MST_商品 ADD CONSTRAINT PMST_商品 PRIMARY KEY(商品コード); でテーブルと主キーを設定し ALTER TABLE MST_商品 ADD CONSTRAINT FMST_商品 FOREIGN KEY(仕入先コード) REFERENCES MST_仕入先(仕入先コード); ほかにもいろいろ試したのですが にっちもさっちもいかないのでよろしくお願いします。
- ベストアンサー
- Oracle
- PostgreSQLからMySQLへ変換
現在ECサイトに追加カスタマイズ機能を導入したいと考えているのですが、 その際の使用コードが以下のようにPostgreSQLの記載となっており、 使用しているphpMyAdminにてSQLコードを入力するとエラーとなってしまいます。 ↓PostgreSQLコード CREATE TABLE dtb_bookmark ( bookmark_id serial NOT NULL, customer_id integer NOT NULL, product_id integer NOT NULL, memo text, create_date timestamp without time zone NOT NULL, update_date timestamp without time zone NOT NULL, del_flg integer ); ALTER TABLE ONLY dtb_bookmark ADD CONSTRAINT dtb_bookmark_pkey PRIMARY KEY (bookmark_id); COMMENT ON TABLE dtb_bookmark IS 'お気に入り情報'; エラーはtimestamp型とALTER以降の文で発生致します。 mysql文にて解釈させるにはどのように変更したらよろしいのでしょうか? 使用mysqlバージョンはMySQL 4.1.21です。 アドバイスなど頂けましたら幸いです。 よろしくお願い致します。
- ベストアンサー
- MySQL
お礼
chukenkenkou様 こんばんは。早速のお返事を有難う御座います。 分かりやすい説明で、とても参考になりました。 お忙しい中、有難う御座いました。