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で質問しましょう!
似たような質問が見つかりました
- MySQL テーブル作成です。どこかのスペルが間違っているか記号など スペースかな? 1 2022/10/01 05:08
- MySQL MySQLのテーブル作成でハイフン - は使用できないのでしょうか? 2 2022/10/21 16:50
- MySQL 何にかが違うから エラーなんでしょうね! 2 2022/09/18 05:28
- MySQL my_itemsテーブルのIDにAUTO_INCREMENT を追加ができるかで 1 2023/01/03 09:09
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- MySQL SHOW CREATE TABLE posts;これって何ですか? 3 2022/08/28 22:57
- MySQL エラー 1068 (42000): 複数の主キーが定義されていますエラー 2 2022/11/17 04:36
- MySQL `picture` varchar(255) のコマンドで間違いないでしょうか? 1 2022/11/21 04:08
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
SQLサーバから、項目の属性(型...
-
SQL Left Join で重複を排除す...
-
副問合せの書き方について
-
[MySQL] UNIQUE制約の値を更新...
-
select文のwhere句に配列を入れ...
-
SQLにて特定の文字を除いた検索...
-
selectした大量データをinsert...
-
エクセルの関数について教えて...
-
sqlで、600行あるテーブルを100...
-
MySQLのint型で001と表示する方...
-
VIEWの元のテーブルのindexって...
-
複数テーブルのGROUP BY の使い...
-
Unionした最後にGROUP BYを追加...
-
Access パラメータクエリをcsv...
-
LAST_INSERT_IDで同時にアクセ...
-
PL/SQLの変数について
-
[SQLServer] テーブル名からカ...
-
VMwareがCDドライブを認識する...
-
1対多結合で多を絞り込み条件と...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
SQL Left Join で重複を排除す...
-
副問合せの書き方について
-
SQLサーバから、項目の属性(型...
-
VIEWの元のテーブルのindexって...
-
select文のwhere句に配列を入れ...
-
selectした大量データをinsert...
-
センノシド異性体構造式
-
Unionした最後にGROUP BYを追加...
-
insertを高速化させたい
-
SQLにて特定の文字を除いた検索...
-
マイクラPC版のコマンドで効率...
-
ある条件の最大値+1を初番する...
-
inner joinをすると数がおかし...
-
sqlで、600行あるテーブルを100...
-
エクセルの関数について教えて...
-
Access パラメータクエリをcsv...
-
URL と行番号の指定
-
複数テーブルのGROUP BY の使い...
-
PL/SQLの変数について
おすすめ情報