
phpMyAdmin を使って以下のSQL文を記載してテープルの追加をしたいのですが
エラーがでます。
phpMyAdminの操作方法やSQLの知識も乏しいので EC-CUBEのテキストに従って操作しているのですが、、、、。
------- ここから ----------
CREATE TABLE dtb_contact (
contact_id serial NOT NULL,
name text,
name_f text,
zip01 text,
zip02 text,
pref integer,
addr01 text,
tel01 text,
tel02 text,
tel03 text,
email text,
message text,
create_date timestamp without time zone,
del_flg integer DEFAULT 0,
customer_id integer,
status integer DEFAULT 0
);
ALTER TABLE ONLY dtb_contact ADD CONSTRAINT dtb_contac_contact_id_key UNIQUE (contact_id);
-----ここまで-------------
実行すると下記のようなエラーがでます
▼MySQLのメッセージ: ドキュメント
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'without time zone,
del_flg integer DEFAULT 0,
customer_id in
MySQL の バージョンは MySQL 5.0.45なのですが
文法的にどこか間違っているのでしょうか?
ご多忙のところ恐縮ですが
ご教授いただければ幸いでございます。
No.2ベストアンサー
- 回答日時:
PostgreSQLを使えばいいのでは?
「PostgreSQLを前提とした記事」を参考にしながらPostgreSQLを使って、環境の違いなどでなかなか思うようにできないという人もすくなくありません。
「MySQLを前提とした記事」を参考にしながらMySQLを使って、環境の違いなどでなかなか思うようにできないという人もすくなくありません。
提示されたPostgreSQLの定義について、どこまで同等にする必要があるのか分かりませんが、MySQLで定義できるように変えることはできます。
しかし、その後のデータの挿入、検索、さらにはアプリも動かしたいのでしょうから、次々と問題が生じるであろうことは、質問の仕方から容易に想像できます。
さらに、自分で調べたり試行錯誤しているといったことが、質問や補足を見てまったく伺えません。
そういった丸投げを繰り返すと、アドバイスしてくれる人がいなくなるかも知れません。
MySQLのマニュアル
http://dev.mysql.com/doc/refman/5.1/ja/index.html
取りあえずMySQLで表定義するには、以下を変更してください。
contact_id serial NOT NULL,
↓
contact_id INT PRIMARY KEY AUTO_INCREMENT,
create_date timestamp without time zone,
↓
create_date DATETIME,
PRIMARY KEYとしたことで、一意性は保証されるという点ではALTER TABLEでの制約追加は必要ありません。ただし、参照しているテキストに制約の追加や削除の記載があり、それに従って操作したいなら、ALTER TABLEを実行するのもいいでしょう。
そうですね。丸投げはよくないですね。
全体のことを考えると やはり PostgreSQLの定義に従って
行こうと思います。
ありがとうございました。
No.1
- 回答日時:
詳しく見てないですが。
MySQLでは、表の列定義で、「without time zone」といったタイムゾーンの指定を実装していません。
また、MySQLでは、timestamp型には任意の日時を格納するのでなく、値を入れなければ勝手にMySQLが日時を入れる仕様になっています。もし、任意の日時を入れたい場合は、datetime型を使用してください。
この回答への補足
テキストを詳しく見ると phpPgAdmin (Postgre)のプログラムのようです。
上記のデータを MySQLに対応させるには、どのように書き換えればいいでしょうか?
ご多忙のところ恐縮ですがご指導のほど
宜しくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
クエリ表示と、ADOで抽出したレ...
-
ストアド内でカラム名一覧を取得
-
【Transact-sql】 execの結果を...
-
PDOで取得すると全てSTRING型で...
-
期間の重複を調べるSQL文につい...
-
ソートした際の、特定のデータ...
-
T-SQLの sp_executesql について
-
VIEWの元のテーブルのindexって...
-
カラム名でseqとidではどちらが...
-
MySQLでINNER JOINした結果をUP...
-
WordpressのContact form 7でzi...
-
連動させて表示させる方法
-
select文のwhere句に配列を入れ...
-
verilogに適したvimの設定を探...
-
バインド変数について
-
神戸 三宮でのおいしい夕食は?
-
1テーブル&複数レコードの更新...
-
最小値をUPDATE
-
inner joinをすると数がおかし...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
エクセルの関数について教えて...
-
Unionした最後にGROUP BYを追加...
-
SQL Left Join で重複を排除す...
-
別のDB(Table)からの複数行の...
-
エラー 1068 (42000): 複数の主...
-
DB設計について
-
VIEWの元のテーブルのindexって...
-
同じサーバーで、異なるデータ...
-
SQLサーバから、項目の属性(型...
-
クエリ表示と、ADOで抽出したレ...
-
SQLにて特定の文字を除いた検索...
-
select文のwhere句に配列を入れ...
-
【SQL文】Insert into文で文法...
-
カラム名でseqとidではどちらが...
-
マイクラPC版のコマンドで効率...
-
Access パラメータクエリをcsv...
-
[MySQL] 1対多のリレーションで...
-
PL/SQLの変数について
-
MySQLにてCOUNTした値を更にCOUNT
おすすめ情報