バージョン選択

フォーラム

メニュー

オンライン状況

43 人のユーザが現在オンラインです。 (26 人のユーザが フォーラム を参照しています。)
登録ユーザ: 1
ゲスト: 42
hashida もっと...

サイト内検索

機能要望 > その他 > MySQL の auto_increment と PostgreSQL の serial 型について

その他

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
nanasess
投稿日時: 2010/8/19 20:45
対応状況: −−−
登録日: 2006/9/9
居住地: 大阪
投稿: 2157
MySQL の auto_increment と PostgreSQL の serial 型について
いままで, EC-CUBE は自動採番に下記の実装を使用しています

* MySQL は auto_increment
* PostgreSQL は serial 型

しかし, これらは下記のようなミスマッチを起こすため, プログラムの共通化ができていませんでした.

* MySQL の auto_increment は, カラムの最大値を取得
* PostgreSQL の serial 型は, シーケンス値を取得

テーブルの ID を他のテーブルの外部キーに使いたい場合などは, PostgreSQL では INSERT 前に ID を取得して, MySQL では INSERT 後に ID を取得するなどしていたので, 不具合も発生しやすく, コードも煩雑になりがちでした.

また, 他の RDBMS に対応しようとしても, 上記の処理が障壁で, 大幅なカスタマイズが必要でした.

このような問題を解消するための改善を r18788 でコミットしました

http://svn.ec-cube.net/open_trac/changeset/18788

INSERT 時に, 自動採番されなくなるため, 事前に SC_Query::nextVal() でシーケンス値を取得しなければなりませんが, コードが共通化でき, 他の RDBMS の採用も容易になります.

PostgreSQL はシーケンス値を取得しますが, MySQL の場合はシーケンス用のテーブルから値を取得します.

ビッグコミットが続いてますので, 不安定な状態がしばらく続くと思いますが, 何かありましたらフィードバック頂ければと思います!
KAJI
投稿日時: 2010/8/20 17:47
対応状況: −−−
一人前
登録日: 2008/1/24
居住地:
投稿: 111
Re: MySQL の auto_increment と PostgreSQL の serial 型について
nanasessさん

株式会社ロックオンの梶原です。

本件、本当にお疲れ様です。
もうすぐですね。

もうすぐ、if (DB_TYPE == "mysql") { みたいなコードがなくなりそうですね。

EC-CUBEもようやくスピード感をもって前進していけそうです!
nanasess
投稿日時: 2010/8/20 18:21
対応状況: −−−
登録日: 2006/9/9
居住地: 大阪
投稿: 2157
Re: MySQL の auto_increment と PostgreSQL の serial 型について
引用:

KAJIさんは書きました:
もうすぐ、if (DB_TYPE == "mysql") { みたいなコードがなくなりそうですね。



ほとんど駆逐しました!!

http://svn.ec-cube.net/open_trac/changeset/18789

バックアップ管理は, 大幅に改修が必要なのと, ダウンロード販売機能については後日対応します!
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBEペイメント

公式ストアEC-CUBE4系デザインテンプレート続々リリース中

統計情報

総メンバー数は72,331名です
総投稿数は101,702件です

投稿数ランキング

1
seasoft
7333
2
468
3037
3
AMUAMU
2712
4
nanasess
2157
5
umebius
2011
6
yuh
1612
7
red
1452
8
h_tanaka
1088
9
tsuji
936
10
fukap
907
11
shutta
835
12
tao_s
793
13 ramrun 789
14 karin 689
15 sumida 641
16
homan
633
17 DELIGHT 572
18
patapata
502
19
flealog
485
20 tonton 437


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.