1

次のように、MySQL テーブル名 Order_Ticket_Number があります。

CREATE TABLE order_ticket_number ( 
    id_store_ticket int(10) NOT NULL,
    id_order_ticket int(3) ZEROFILL AUTO_INCREMENT NOT NULL,
    id_date_order timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
    id_order int(10) unsigned NOT NULL default 0, 
    PRIMARY KEY (id_store_ticket,id_order_ticket,id_date_order) 
)
ENGINE=myisam DEFAULT CHARSET=utf8;

id_order_ticket開発中のPythonアプリからストアを開くたびに値を再起動したい。id_order_ticket は 001, 002 で始まります...そして、 SOD(start-of-day) を作成しているときに、毎日を 001 で開始したいと考えています。ex.id_order_ticket = 001id_date_order も同じなので2 時間あっても競合しませんPK and Engine=myisam. よろしくお願いします

4

2 に答える 2

2

私の理解が正しければ、主キーの列の順序を変更し、DATEタイムスタンプではなく列を使用する必要があります。

PRIMARY KEY (id_store_ticket, id_date, id_order_ticket)

SQL-Fiddleでテストされた例:

CREATE TABLE order_ticket_number 
  ( id_store_ticket int(10) NOT NULL,
    id_date DATE NOT NULL,
    id_order_ticket int(3) ZEROFILL AUTO_INCREMENT NOT NULL,
    id_date_order timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
    id_order int(10) unsigned NOT NULL DEFAULT 0,  

   PRIMARY KEY (id_store_ticket, id_date, id_order_ticket)
  )                                    
  ENGINE = MyISAM ;

日付にはDEFAULT CURRENT_TIMESTAMPプロパティを指定できないため、日付列とタイムスタンプ列の値が一貫していることを確認する必要があります。

于 2012-10-11T11:19:30.653 に答える
0

Mysql のドキュメントには、それは不可能であると記載されています。

新しい行に使用される AUTO_INCREMENT カウンターの値を変更するには、次のようにします。

ALTER TABLE t2 AUTO_INCREMENT = 値; カウンタを、すでに使用されている値以下の値にリセットすることはできません。

参照

于 2012-10-11T11:17:35.240 に答える